ActionScript AddChild для перехода из класса - PullRequest
1 голос
/ 01 июня 2011

Я пытаюсь добавить объект в основную сцену с помощью метода addChild(). Обычно при работе внутри самого FLA использование addChild(myObject) работает просто отлично. Однако он не работает во внешнем классе AS.

Все другие учебники, которые я нашел, показали мне, как сделать что-то подобное, а это не то, что мне нужно:

var myMovieClip:MovieClip = new MovieClip();
myMovieClip.addChild(myObject); // Works great, but not what I need

Может кто-нибудь показать мне, как добавить объект в мою основную сцену через внешний класс AS.

Спасибо, что уделили время.

Ответы [ 3 ]

2 голосов
/ 01 июня 2011

Если это ваш класс документов или класс, который имеет действительную ссылку на стадию, вы можете использовать:

stage.addChild(myObject);

РЕДАКТИРОВАТЬ - Добавлен пример.

Вот пример класса, который расширяет EventDispatcher и передает параметр 'stage'.

Во-первых, класс:

package {

    import flash.display.MovieClip;
    import flash.display.Stage;
    import flash.events.EventDispatcher;

    public class MyClass extends EventDispatcher {

        private var _stage:Stage;

        public function MyClass(stage:Stage) {
            _stage = stage;

            var mc:MovieClip = new MovieClip();
            _stage.addChild(mc);
        }
    }
}

И использование (при условии, что это из класса, который имеет ссылку на 'stage'):

var obj:MyClass = new MyClass(null, this.stage);
0 голосов
/ 01 сентября 2013

метод Кори работает. Вам не нужно расширять EventDispatcher, как он сделал в своем примере.

Что важно в его примере:

private var _stage:Stage;
public function MyClass(stage:Stage) {
_stage = stage;

var mc:MovieClip = new MovieClip();
 _stage.addChild(mc);
}

Обратите внимание, как он использует переменную _stage, ссылающуюся на него.

0 голосов
/ 01 июня 2011

Вы уже попробовали следующее?

stage.addChild(myObject)
...