Доступ к родительским свойствам / методам в Actionscript 3.0

Я пытаюсь контролировать основную временную шкалу моего flash-приложения с помощью MovieClip, который является дочерним элементом основной сцены. По-видимому, в ActionScript 2 вы могли бы сделать это с помощью _root, но использование root (поскольку _root больше не существует) теперь выдает ошибку:

root.play();

"1061: вызов возможно неопределенного метода воспроизведения через ссылку со статическим типом flash.display:DisplayObjectContainer."

Использование класса Stage также не работает:

stage.play();

"1061: вызов возможно неопределенного метода воспроизведения по ссылке со статическим типом flash.display:Stage."

Есть какой-либо способ сделать это?

3 ответа

Решение

Вы должны привести его к мувиклипу

(root as MovieClip).play()

Согласно http://www.adobe.com/cfusion/webforums/forum/messageview.cfm?forumid=15&catid=665&threadid=1387264&enterthread=y,

попробуй что-то вроде
MovieClip(корень).gotoAndPlay("меню");

Удачи,
Рэнди Стегбауэр

Другим способом является разделение кода вашего мувиклипа на отдельный класс при настройке класса документа для вашего основного флага.

Предположим, что класс документа вашего основного флага - Main.as, а файл класса вашего мувиклипа - Movie.as. Вы можете добавить указатель основного класса в качестве параметра в конструкторе класса Movie.

В Main.as

public class Main() { var m = new Movie(this); }

В Movie.as

public class Movie(m:Main) { m.gotoAndPlay("somewhere"); }
Другие вопросы по тегам