是的,有理由保持對舞臺的參考。一個例子是,如果要添加事件偵聽器的階段,需要確保他們在未來被清理或希望在事件可能超出直接控制下面是一個例子:
public class Demo
{
private var _stage:Stage;
public function Demo()
{
super();
addEventListener(Event.ADDED_TO_STAGE, onAddedToStage, false, 0, true);
}
public function destroy():void
{
if (_stage)
{
_stage.removeEventListener(MouseEvent.MOUSE_MOVE, onMouseMove);
_stage.removeEventListener(Event.MOUSE_LEAVE, onMouseLeave);
_stage = null;
}
}
private function onAddedToStage(event:Event):void
{
removeEventListener(Event.ADDED_TO_STAGE, onAddedToStage);
_stage = stage;
_stage.addEventListener(MouseEvent.MOUSE_MOVE, onMouseMove, false, 0, true);
_stage.addEventListener(Event.MOUSE_LEAVE, onMouseLeave, false, 0, true);
}
private function onMouseMove(event:MouseEvent):void
{ /* Do something */ }
private function onMouseLeave(event:Event):void
{ /* Do something */ }
}
謝謝,對不起,忽略了舞臺佈置 - 我會更新這個問題。我只指定了類型。不過,瞭解這兩種方法之間的功能差異會很好。從邏輯上講,我明白使用'舞臺'簡直就是更簡單和更清潔的開箱即用。 – Structure
2之間的唯一真正區別是一個是全局變量(stage),另一個是局部變量var(myStageInstance),但是因爲對象通過引用傳遞,所以2之間確實沒有區別。 –
充其量只有我能想到的是如果你想延長舞臺課程。然而,我甚至不確定這是否可能,它可能是最後一堂課,可能是。 –