0
public class Main extends MovieClip {

  public function Main():void {
    getOne()
  }

    function getOne():void {
      var varOne:Boolean = false;

      stage.addEventListener(MouseEvent.CLICK, dunClicked);
    }

    function dunClicked(e:Event):void {
      if(!varOne) trace("Nope...");
    }
}

さて...クラス内にvarOneを配置すると、一種の「グローバル変数」として扱われることを知っています(間違っている場合は修正してください...)EventListenerが見る別の方法があるかどうか疑問に思っていましたvarOneの値?

4

2 に答える 2

0

リスナーを関数内に配置できるため、リスナーはクロージャになり、ローカル関数変数にアクセスできるようになります。

function getOne():void {
  var varOne:Boolean = false;

  stage.addEventListener(MouseEvent.CLICK, dunClicked);

  function dunClicked(e:Event):void {
     if(!varOne) trace("Nope...");
  }
}
于 2013-03-18T21:31:51.450 に答える