Просматривая список по одному.(На самом деле это как минимум 4 вопроса)
Я использую класс I с именем «GlobalVariables».Я использую это для того, чтобы иметь «Скорость», которую я могу достичь везде.Поэтому, если я на главной линии или в классе, я могу набрать «GlobalVarialbes.Speed», а затем изменить скорость.Это хороший способ справиться с вещами?Или для преформана тяжело это сделать?Я просто вроде многих из этих "глобальных переменных".Использование глобальных переменных и вызовов функций может занять некоторое время.Если вы используете переменную более одного раза в методе, вы можете слегка оптимизировать, кэшируя значение в локальной переменной.Но не забудьте проверить результат, так как кэширование объекта, если оно не является примитивным значением, может вызвать вызов конструктора "new Something ()", который очень медленный.
One REALLY annoying thing is that when objects move, I really need
the FPS to be 60 FPS. Because if the FPS is around 30-40, the
objects doesnt move at the same speed, and the objects seems to be
alot closer the each other to... This is really annoying. I just use
object.x += GlobalVariables.Speed (Speed is maybe 4)... Any
suggestions here?
Измените способ определения скорости от пикселей на кадр до пикселей в секунду.Затем используйте getTimer () каждую секунду, чтобы узнать, какой процент секунды прошел с последнего обработанного кадра.Вот пример кода в этой теме: Пропуск кадров во Flash
If I use a background it actually takes alot of the FPS from me.
Around 7-10 fps. How can I make a background picture less
preformance eating?
Фоны, и рисование в целом будет дорогостоящим процессом.Используйте cacheAsBitmap, если фон не прокручивается.Убедитесь, что фон не содержит дочерних слоев, если это возможно.Используйте растровое изображение, а не векторы.И держите его как можно меньше - не лишние биты за пределами экрана.Также убедитесь, что фон не масштабируется.Выключите растровое сглаживание тоже.Попробуйте установить качество сцены на StageQuality.LOW или StageQuality.Medium и посмотрите, поможет ли это.== ОБНОВЛЕНИЕ == Теперь, когда вышел AIR 3.2 и он поддерживает OpenGL на iOS и Android, используйте эту функцию.Он называется «stage3D» во флэш-памяти, и это действительно единственный хороший способ сделать вашу графику для мобильных устройств с помощью Flash.Для 2D-графики выходит скворец.http://gamua.com/starling/ Это тот же движок, который используется Angry Birds на Facebook.Таким образом, его испытания в реальных условиях и производство готово.(И его открытый исходный код!)
General tips maybe? I use the GPU mode on the iOS devies :)
Общие советы: используйте растровые изображения для всего.Избегайте прозрачности, когда это возможно.Не используйте фильтры или режимы наложения.Избегайте альфа-анимации.Избегайте создания новых объектов - утилизируйте часто используемые объекты, особенно отображаемые объекты.Помните, что добавление и удаление детей также является дорогостоящим.Если в пуле многократного использования есть несколько пуль, вы можете установить для них значение visible = false.Тогда visible = true, когда вы повторно инициализируете этот объект маркера.Попробуйте выполнить поиск «Объединение объектов AS3»
. Используйте Vector вместо Array.
И, наконец, выполните тестирование и повторное тестирование.Измерьте время каждого вызова функции.Оптимизация flash - это глубокая и насыщенная тема, которую вы никогда не исчерпаете.Частично потому, что ваш пробег будет варьироваться от проекта к проекту.Вот хорошая ссылка, чтобы вы начали изучать методы оптимизации для AS3 http://drawlogic.com/2009/05/22/as3-flash-efficient-code-techniques-vectors-in-flash-10-faster-jpeg-encoding-other-optimization-notes/