Вы можете применить многие свои навыки C ++ к своему проекту AS3.
Есть много хитростей.Рад, что ты поднял код на основной временной шкале.Вместо того, чтобы помещать код на временную шкалу (это слишком часто встречается в программах AS2, а с AS3 вы можете полностью избежать этого), я бы рекомендовал рассматривать каждый объект как отдельный класс.Например, ваш мувиклип, к которому вы применяете код для мыши, может быть объектом, созданным в своем собственном классе.Скажем, MovieClip - это изображение шара.Вы должны создать класс Ball, который расширяет (наследует) класс MovieClip и обрабатывает в нем событие щелчка мышью:
package
{
import flash.display.MovieClip;
import flash.events.MouseEvent;
public class myObjects.Ball extends MovieClip
{
public function Ball ()
{
this.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
}
private function mouseDownHandler(event:MouseEvent):void
{
// Code
}
}
}
Затем найдите MovieClip шара на панели «Библиотека», щелкните его правой кнопкой мыши., Свойства, переключиться в расширенный режим, отключите экспорт для AS.Теперь обратите внимание, как ваш MovieClip уже ссылается на класс MovieClip в качестве базового класса?Вам это больше не понадобится, поскольку ваш класс Ball расширяет класс MovieClip .. поэтому в поле Class напишите «myObjects.Ball» и очистите поле «Base».Вы должны увидеть зеленую галочку, если вы написали путь к своему классу Ball с пространством имен, который может найти Flash IDE.
Теперь ваш класс Ball будет использовать этот MovieClip, поэтому при создании нового экземпляра Ball в вашем основном классевы можете работать с ним, как мувиклип, и динамически прикреплять его к рабочей области.Или вы можете просто добавить его на шкалу времени, перетащив туда Ball MovieClip.
Расширение класса, который я объяснил, является версией AS3 «Наследование» (класс Ball наследует класс MovieClip).Вы также можете использовать другие ОО-концепции, такие как полиморфизм и инкапсуляция.Вы должны по возможности инкапсулировать свой код в отдельные классы.Скажем, если в вашем проекте было несколько типов MovieClips для мяча, и вы хотите, чтобы класс Ball был родительским классом для Футбольного мяча, Бильярдного шара и Бейсбола.Каждый из этих дочерних классов может расширять класс Ball.Еще одна вещь, которую я нашел полезной для больших проектов, - это создание статического класса для обработки всех событий моего приложения.Поскольку я определяю его как public static class
, я могу импортировать его в каждый из моих классов, и его переменные создаются только один раз на время работы приложения.Это может быть чрезвычайно полезно.
Я также создал свой собственный псевдодеструктор в классах, чтобы работать с AS3 больше похожим на c ++.Самый простой способ сделать это - вызвать псевдодеструктор, прежде чем уничтожить экземпляр объекта.Я сделал это автоматически в одном приложении, поэтому, если это кого-то интересует, я могу отследить код ... но AS3 обрабатывает сборку мусора за кулисами, и обычно деструктор не нужен, но, может быть, я просто думаю, что он не нужен, потому чтоЯ слишком долго вырабатывал вредные привычки в программировании на AS3.
Лично я думаю, что чем больше вы стремитесь разрабатывать приложения в AS3, как если бы вы разрабатывали на C ++, тем больше это доставляло удовольствия и тем больше возможностей для повторного использования.код становится.Продолжайте в том же духе ... скоро вместо беспорядочного кода у вас будет куча файлов ActionScript. LOL ... немного обоюдоострого меча, но ничего.