![]() |
|
||||||||||
|
|
|
|||||
|
есть задача. нужно в методе некоторого класса добавить объект на рабочую поверхность (stage)
public class MyClass extends MovieClip {
public function someMethod () {
....
stage.addChild( child );
}
}
бросает ошибку, что stage null. что нужно сделать, чтобы добавить объект на рабочую поверхность (на самый верхний уровень)? Последний раз редактировалось iNils; 27.05.2009 в 20:21. |
|
|||||
|
стеджа у этого класса нет, так как нет ссылки на стейдж. можно передать классу в конструктор стейдж от меин класса приложения и ставить уже в него.
__________________
Работаю |
|
|||||
|
stage есть, но
"If a display object is not added to the display list, its stage property is set to null." т.е. или дождаться (Event.ADDED_TO_STAGE) когда stage будет определен или пользоваться после явного addChild объекта (и его родителей тоже) |
|
|||||
|
мм.. т.е. я сначала должен добавить экземпляр моего класса MyClass на stage, и только потом у меня внутри экземпляра MyClass появится не null'овое значение свойства stage?
тогда вопрос. а может ли экземпляр MyClass сам добавиться на stage (спровоцировать событие Event.ADDED_TO_STAGE)? 2Snut: спсисбо за совет. я пока так и сделаю |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Без ссылки на stage только одним единственным способом, но описывать его не буду, т. к. один фиг в релизе не работает.
|
|
|||||
|
Опиши, мне интересно
__________________
Работаю |
|
|||||
|
Сори, я просто вопрос не понял. А сам добавится.... это что-то из области фантастики, если нет ссылки на стейдж всего приложения то не сможет
*ушел проверять* Добавлено через 4 минуты package { import flash.display.Sprite; [SWF(width="1000", height="600", frameRate="24")] public class TestVisual extends Sprite { public function TestVisual() { var sa:SelfAdder = new SelfAdder( super.stage ); } } } import flash.display.Sprite; import flash.display.Stage; internal class SelfAdder extends Sprite { private var _stage:Stage; public function SelfAdder(stage:Stage) { this._stage = stage; if (this._stage) { super.graphics.beginFill(0xFF0000); super.graphics.drawCircle(100, 100, 100); super.graphics.endFill(); this._stage.addChild( this ); } } }
__________________
Работаю Последний раз редактировалось Snut; 27.05.2009 в 17:45. |
|
|||||
|
стервочка (я мужик)
|
Snut, в блоге ищи.
|
![]() |
![]() |
Часовой пояс GMT +4, время: 23:11. |
|
|
« Предыдущая тема | Следующая тема » |
|
|