Метод addchild() as3 — добавление экземпляра на сцену

Этот урок является продолжением предыдущего и в нем мы рассмотрим также 2 вопроса:

  1. Метод addchild() as3 — добавление экземпляра на сцену
  2. Дополнительная информация

После того как Вы экспортировали клип в Actionscript можно создавать его экземпляры и размещать их на сцене с помощью кода. Порядок здесь следующий:

  • дайте имя экземпляру, а затем используя ключевое слово new вызовите его конструктор;
  • добавьте созданный экземпляр на сцену: вызовите метод addChild() AS3 класса Stage, передайте ему в виде аргумента имя экземпляра.

Все объекты, которые будут визуализированы во время показа фильма Flash Player’ом находятся в так называемом списке показа (display list). Этот список сообщает Flash Player’у какие объекты должны появиться на сцене и в каком порядке. Метод addChild() добавляет указанный экземпляр в этот список последним пунктом.

Новый экземпляр помещается в точку 0,0 на осях координат х и у, т.е в верхнем левом углу сцены. Назначив другие значения координат для экземпляра Вы поместить его туда куда нужно. Вы можете также вызывать другие существующие свойства и методы символа и менять их значения на необходимые.

Для каждого вновь создаваемого символа Вы должны повторять вышеперечисленные шаги: даете имя символу, вызываете его конструктор, вызываете метод addChild() AS3 и передаете ему в качестве аргумента имя символа.

Создание экземпляра с помощью Actionscript по сути тоже самое, что и перетаскивание экземпляра символа из библиотеки символов на сцену и назначение ему имени в панели свойств (Properties panel). Поэтому правила назначения имен для экземпляров остаются теми же, что и прежде.

Метод addChild(). Добавление экземпляра на сцену с помощью Actionscript

Добавление экземпляра на сцену с помощью кода

Откройте панель Actions .

Создайте экземпляр (см. урок «Экспорт символа в Actionscript-код»).

Пример:

Добавьте созданный экземпляр в список показа (display list).

Определение местоположения и угла поворота

Назначьте координаты х и у для Вашего экземпляра

Назначьте угол поворота

Нажмите Ctrl + Enter.

Ролик начнет воспроизводиться.

Экземпляр появится в нужном месте на сцене и назначенным углом поворота.

Дополнительная информация

Для того чтобы быстро создать несколько экземпляров одного и того же символа нужно воспользоваться циклом (loop), о котором мы поговорим в последующих уроках.

Необходимо помнить, что при использовании метода addChild() несколько раз подряд экземпляры будут перекрывать друг друга, если Вы не назначите им разные координаты х и у. То есть они будут распологаться стопкой (stack). Их порядок можно менять с помощью метода addChildAt() вместо addChild(). Этот метод принимает два аргумента: имя экземпляра и целое число (integer) – уровень, который будет занимать этот экземпляр в стэке. Если номер уровня будет совпадать с уже существующим в стопе, то экземпляр с таким номером и все находящиеся выше переместятся вверх относительно добавленного.

Метод addchild() as3 — добавление экземпляра на сцену: 5 комментариев

  1. “Для того чтобы быстро создать несколько экземпляров одного и того же символа нужно воспользоваться циклом (loop), о котором мы поговорим в последующих уроках.” Я так и не нашёл этого урока, очень нужно! А вообще, спасибо большое за уроки! Думаю, это лучшее пособие из тех, что есть в сети.

    1. О циклах в своем курсе “AS3 Уроки для начинающих” я еще урока не сделал. В сети достаточно материалов на эту тему. Достаточно набрать в любом поисковике запрос “ActionScript 3 циклы” или подобный.

  2. Будьте добры, объясните, как обратиться к перетаскиваемому экземпляру клипа, созданному с помощью такого кода: var bulbsType : Array = [red_bulb, blue_bulb,yellow_bulb, purple_bulb, orange_bulb]; for (var i:int = 0; i<bulbsType .length;i++){ bulbsType [i].addEventListener(MouseEvent.MOUSE_DOWN, createBulb); bulbsType [i].buttonMode = true; } var bulbs:Array = new Array(); function createBulb(e:MouseEvent):void { var bulb:MovieClip; switch(e.target.name){ case “red_bulb”: bulb = new RedBulb(); break; case “blue_bulb”: bulb = new BlueBulb(); break; case “yellow_bulb”: bulb = new YellowBulb(); break; case “purple_bulb”: bulb = new PurpleBulb(); break; case “orange_bulb”: bulb = new OrangeBulb(); break; }

  3. Отформатировала код: var bulbsType : Array = [red_bulb, blue_bulb,yellow_bulb, purple_bulb, orange_bulb]; for (var i:int = 0; i<bulbsType .length;i++){ bulbsType [i].addEventListener(MouseEvent.MOUSE_DOWN, createBulb); bulbsType [i].buttonMode = true; } var bulbs:Array = new Array(); function createBulb(e:MouseEvent):void { var bulb:MovieClip; switch(e.target.name){ case “red_bulb”: bulb = new RedBulb(); break; case “blue_bulb”: bulb = new BlueBulb(); break; case “yellow_bulb”: bulb = new YellowBulb(); break; case “purple_bulb”: bulb = new PurpleBulb(); break; case “orange_bulb”: bulb = new OrangeBulb(); break; } А то читать просто невозможно. Надеюсь, что на этой странице работает Enter

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *