Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Мувик добавляет на сцену другой мувик (http://www.flasher.ru/forum/showthread.php?t=174288)

nitratus 22.01.2012 00:20

Мувик добавляет на сцену другой мувик
 
Вбил в поиске "мувик", посмотрел 3 страницы результатов, нужного не нашел.
Как сделать чтобы мувик добавлял на основную сцену другой мувик?
Это класс гарб1, он должен добавлять на сцену гарб2.
Код AS3:

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());
 }
 }
}

В стейдже в первом кадре пишу:
Код AS3:

addChild (new garb1());

выдает ошибку
Код:

Не удается вызвать свойство или метод со ссылкой на объект "null".
        at garb1()
        at _fla::MainTimeline/frame1()

Сам по себе гарб2 добавляется без проблем, и если в гарбе 1-ом убрать строчку, где он пытается добавить гарб 2, то гарб1 добавляется (рисуется черный квадратик)

Stitch512 22.01.2012 00:26

Код AS3:

parent.addChild(new garb2());

в конструкторе parent еще нет, он появится после
Код AS3:

addChild (new garb1());

.
Это действие нужно делать по событию ADDED_TO_STAGE. А вообще, нехорошая конструкция, так делать некошерно.

nitratus 22.01.2012 00:37

Спасибо, никогда бы не догадался!
А почему нехорошая? Как тогда делают?

СлаваRa 22.01.2012 00:39

Вы бы лучше описали задачу\проблему, и вот тогда, может быть, Вам бы помогли прийти к верной реализации.

Цитата:

А почему нехорошая? Как тогда делают?
А почему у вас дети добавляют родителям детей?

Stitch512 22.01.2012 00:48

Код AS3:

addChild (new garb1());
addChild (new garb2());

Ну, хотя бы, почему вот так не зделать в кадре.
И соответственно
Код AS3:

parent.addChild(new garb2());

убрать из конструктора

nitratus 22.01.2012 00:57

если у меня много штук габр1, и нужно добавлять габр 2 когда с габр1 что-то происходит, то удобнее отследить это событие изнутри габр1. Если добавлять габр2 из основного кода, то нужно будет постоянно обходить все габр1. А вдруг у меня появится ещё несколько штук габр1? Тогда нужно сделать обход похитрее.
Не говоря уже о том, что изнутри габр1 удобнее задать параметры для габр2

СлаваRa 22.01.2012 01:05

а отправить событие из вашего "габр1" и по событию добавить "габр2" никак?

Stitch512 22.01.2012 01:40

а почему тогда "габр2" не зделать чайлдом "габр1"

nitratus 22.01.2012 02:05

Stitch512,
по тому что "гарб1" может удалится.

СлаваRa,
гарбов первых много, и в зависимости от параметров "родительского" гарба1 надо чтоб у гарба2 были какие-то соответствующие параметры. Я не знаю как вместе с событием передать все эти параметры, и по-моему в этом случае это чуть ли не извращение по сравнению с созданием гарба2 изнутри гарба1.

СлаваRa 22.01.2012 15:03

Цитата:

и нужно добавлять габр2 когда с габр1 что-то происходит
Цитата:

и в зависимости от параметров "родительского" гарба1
если верна вторая цитата, то габр1 никак не влияет на "появление" габр2, за всех отвечает родительский класс


Часовой пояс GMT +4, время: 00:58.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.