Просмотр полной версии : Мувик добавляет на сцену другой мувик
nitratus
22.01.2012, 00:20
Вбил в поиске "мувик", посмотрел 3 страницы результатов, нужного не нашел.
Как сделать чтобы мувик добавлял на основную сцену другой мувик?
Это класс гарб1, он должен добавлять на сцену гарб2.
package {
import flash.display.MovieClip;
public class garb1 extends MovieClip {
public function garb1 () {
this.graphics.beginFill(0);
this.graphics.drawRect(10, 20, 13, 14);
parent.addChild(new garb2());
}
}
}
В стейдже в первом кадре пишу: addChild (new garb1()); выдает ошибку Не удается вызвать свойство или метод со ссылкой на объект "null".
at garb1()
at _fla::MainTimeline/frame1()
Сам по себе гарб2 добавляется без проблем, и если в гарбе 1-ом убрать строчку, где он пытается добавить гарб 2, то гарб1 добавляется (рисуется черный квадратик)
Stitch512
22.01.2012, 00:26
parent.addChild(new garb2());
в конструкторе parent еще нет, он появится после addChild (new garb1());.
Это действие нужно делать по событию ADDED_TO_STAGE. А вообще, нехорошая конструкция, так делать некошерно.
nitratus
22.01.2012, 00:37
Спасибо, никогда бы не догадался!
А почему нехорошая? Как тогда делают?
Вы бы лучше описали задачу\проблему, и вот тогда, может быть, Вам бы помогли прийти к верной реализации.
А почему нехорошая? Как тогда делают?
А почему у вас дети добавляют родителям детей?
Stitch512
22.01.2012, 00:48
addChild (new garb1());
addChild (new garb2());
Ну, хотя бы, почему вот так не зделать в кадре.
И соответственно parent.addChild(new garb2()); убрать из конструктора
nitratus
22.01.2012, 00:57
если у меня много штук габр1, и нужно добавлять габр 2 когда с габр1 что-то происходит, то удобнее отследить это событие изнутри габр1. Если добавлять габр2 из основного кода, то нужно будет постоянно обходить все габр1. А вдруг у меня появится ещё несколько штук габр1? Тогда нужно сделать обход похитрее.
Не говоря уже о том, что изнутри габр1 удобнее задать параметры для габр2
а отправить событие из вашего "габр1" и по событию добавить "габр2" никак?
Stitch512
22.01.2012, 01:40
а почему тогда "габр2" не зделать чайлдом "габр1"
nitratus
22.01.2012, 02:05
Stitch512,
по тому что "гарб1" может удалится.
СлаваRa,
гарбов первых много, и в зависимости от параметров "родительского" гарба1 надо чтоб у гарба2 были какие-то соответствующие параметры. Я не знаю как вместе с событием передать все эти параметры, и по-моему в этом случае это чуть ли не извращение по сравнению с созданием гарба2 изнутри гарба1.
и нужно добавлять габр2 когда с габр1 что-то происходит
и в зависимости от параметров "родительского" гарба1
если верна вторая цитата, то габр1 никак не влияет на "появление" габр2, за всех отвечает родительский класс
nitratus
22.01.2012, 19:17
Так что, мне нельзя добавить пару строчек для управления параметрами гарб2, или как?
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.