Tips & Tricks 2
1. Быстрое получение значения после запятой.
[as]
public function getDecimal($value : Number) : Number {
return $value – ($value >> 0);
}
[/as]
2. Что бы не было проблем с получением DisplayObject’а после использования myMovieClipHolder.gotoAndStop(). Используйте Event.ENTER_FRAME, до того как событие отработает один раз. Использование MovieClip распространено в многоязычных версиях сайтов, сделав лэйблы: ru, en, ua.
[as]
private function onChangelanguage(e : Event) : void {
if(_k > 0){
this.removeEventListener(Event.ENTER_FRAME, onChangelanguage);
registerMC();
}
_k++;
}
[/as]
3. Являюсь ярым поклонником TweenLite разрабатываемого Jack Doyle. Не так давно, проект стал платформой для программной анимации, и легко расширяется плагинами. Я с вами поделюсь двумя плагинами, один из которых я использую в 40% всех программных анимаций – AutoDeletePlugin. ShortRadianRotationPlugin – позволяет работать с радианами, как это сделано в Alternativa 3D. AutoDeletePlugin – применяется только для DisplayObject. По завершению анимации, больше не нужно использовать onComplete, что бы удалить DisplayObject.
4. Быстрый и удобный, но не самый надежный способ убрать интерактивность с элементов интерфейса. Допустим есть некая форма, элементы которой содержатся в одном контейнере, пусть он будет называться formHolder.
[as]
private function toggleForm($state : Boolean) : void {
formHolder.mouseChildren = $state;
}
[/as]
Главный минус такой реализации, что необходимо следить за теми элементами интерфейса, которые требуют игнорирования событий от мыши. К примеру лейблы на кнопках, если таких элементов нет, то можете использовать этот метод смело. Так же можно дать понять пользователю, что форма действительно неактивная, добавив одну строчку кода:
[as]
private function toggleForm($state : Boolean) : void {
formHolder.mouseChildren = $state;
formHolder.alpha= ($state) ? 1 : 0.6;
}
[/as]
5. Разрабатывая Pure AS3 проект, вы не сможете использовать «плюшку» Flash Player 10 для работы с текстом. Так как новый фреймворк для работы с текстом использует совсем другой тип встроенного текста, обычный встроенный текст в проекте имеет тип EMBEDDED, когда необходим EMBEDDED_CFF. Решить эту проблему сможет лишь новый Flex SDK 4 версии с расширенным метатэгом Embbed. Но учтите, шрифт будет встроен дважды.

Да, быстрее, но не в два с лишним раза…
При 100000000 итераций, разница ~40мс.
1934
1976
$value – int($value) в два с лишним раза быстрее, чем $value – ($value>> 0)