Если вы используете Flex, у вас есть FlexGlobals.topLevelApplication
, который будет указывать на ваш mx:Application
или s:Application
, поэтому вы можете позвонить stage
, чтобы получить ссылку на него.
В противном случаедля любого DisplayObject
, прикрепленного к сцене или присоединенного к другому DisplayObject
, прикрепленному к stage
, будет установлено свойство stage
(если оно ни к чему не прикреплено, stage
будет null
).
Кроме того, обычно люди хранят статические данные, к которым они могут получить доступ через код, который устанавливается при запуске программы.Например, ваш типичный основной класс может выглядеть примерно так:
package
{
import flash.display.Sprite;
import flash.display.Stage;
import flash.events.Event;
public class Main extends Sprite
{
public static var stage:Stage = null;
public function Main():void
{
// if we have our stage, go directly to _init(), otherwise wait
if ( this.stage ) this._init();
else this.addEventListener( Event.ADDED_TO_STAGE, this._init );
}
private function _init( e:Event = null ):void
{
// remove the listener
this.removeEventListener( Event.ADDED_TO_STAGE, this._init );
// hold the stage
Main.stage = this.stage;
// do everything else
...
}
}
}
После этого в любом месте вашего кода вы можете позвонить Main.stage
, чтобы получить доступ к stage
.
.