代码之家  ›  专栏  ›  技术社区  ›  sam

AS3:使用eventlistener向阶段添加多个按钮?

  •  0
  • sam  · 技术社区  · 16 年前

    如何为每个按钮创建事件侦听器?我试着将每个实例名称放入一个数组中,然后循环,但这给了我一个关于按钮如何不存在的错误,因此它无法侦听。

    1 回复  |  直到 16 年前
        1
  •  3
  •   poke    16 年前

    function init ():void
    {
        var btn:Sprite;
        for ( var i:uint = 0; i < 100; i++ )
        {
            btn = new Sprite();
            btn.graphics.beginFill( Math.round( Math.random() * 0xFFFFFF ) );
            btn.graphics.drawRect( 0, 0, 50, 50 );
            btn.x = ( i % 20 ) * 50;
            btn.y = Math.floor( i / 20 ) * 50;
    
            // event listeners
            btn.addEventListener( MouseEvent.CLICK, btnClick );
    
            this.addChild( btn );
        }
    }
    
    function btnClick ( event:MouseEvent ):void
    {
        var btn:Sprite = event.currentTarget as Sprite;
        btn.graphics.clear();
        btn.graphics.beginFill( Math.round( Math.random() * 0xFFFFFF ) );
        btn.graphics.drawRect( 0, 0, 50, 50 );
    }