Actionscript 3 addEventlistener、数组、as链接

Actionscript 3 addEventlistener、数组、as链接,actionscript-3,Actionscript 3,我在这个函数中添加了10个带有AS链接框的movieclips。我将不同的实例命名为layer1到layer10 我的问题是,如何将eventlistener添加到(比如)仅层4 var NUM_BOXES:int = 10; var BOX_SPACING:int = 1; var _boxes:Array = []; function Test() { for (var i:int = 0; i < NUM_BOXES; i++) { var box

我在这个函数中添加了10个带有AS链接
框的movieclips。我将不同的实例命名为
layer1
layer10

我的问题是,如何将eventlistener添加到(比如)仅
层4

var NUM_BOXES:int = 10;
var BOX_SPACING:int = 1;

var _boxes:Array = [];

function Test()
{
    for (var i:int = 0; i < NUM_BOXES; i++)
    {
        var box:Box = new Box( i + 1 );
        box.y = (box.height + BOX_SPACING) * i;
        box.name= "layer" +( i + 1);
        box.buttonMode = true;
        box.addEventListener( MouseEvent.MOUSE_DOWN, onBoxPress );
        box.addEventListener( MouseEvent.MOUSE_UP, onBoxRelease );
        addChild( box );
        _boxes.push( box );
    }
}
var NUM_框:int=10;
变量框间距:int=1;
变量框:数组=[];
功能测试()
{
对于(变量i:int=0;i
var NUM\u框:int=10;
变量框间距:int=1;
变量框:数组=[];
变量编号:int;
功能测试()
{
对于(变量i:int=0;i
基于bluebill1049的答案:

if(number==4)
方法是不可伸缩的,也就是说,如果您希望100个层都有侦听器,那么就不能为每个层编写
if
语句。简单的解决办法是:

var NUM_BOXES:int = 10;
var BOX_SPACING:int = 1;

var _boxes:Array = [];

//Any numbers in this array are assigned listeners
var layers_with_listeners:Array = [1, 4, 9]; 

function Test()
{
    for (var i:int = 0; i < NUM_BOXES; i++)
    {
        var box:Box = new Box( i + 1 );
        box.y = (box.height + BOX_SPACING) * i;
        box.name= "layer" +( i + 1);
        box.buttonMode = true;

        if(layers_with_listeners.indexOf(i+1) != -1) {     
            box.addEventListener( MouseEvent.MOUSE_DOWN, onBoxPress );
            box.addEventListener( MouseEvent.MOUSE_UP, onBoxRelease );
        }

        addChild( box );
        _boxes.push( box );
    }
}
var NUM_框:int=10;
变量框间距:int=1;
变量框:数组=[];
//此数组中的任何数字都被指定为侦听器
带有侦听器的var层:Array=[1,4,9];
功能测试()
{
对于(变量i:int=0;i
var NUM_BOXES:int = 10;
var BOX_SPACING:int = 1;

var _boxes:Array = [];

//Any numbers in this array are assigned listeners
var layers_with_listeners:Array = [1, 4, 9]; 

function Test()
{
    for (var i:int = 0; i < NUM_BOXES; i++)
    {
        var box:Box = new Box( i + 1 );
        box.y = (box.height + BOX_SPACING) * i;
        box.name= "layer" +( i + 1);
        box.buttonMode = true;

        if(layers_with_listeners.indexOf(i+1) != -1) {     
            box.addEventListener( MouseEvent.MOUSE_DOWN, onBoxPress );
            box.addEventListener( MouseEvent.MOUSE_UP, onBoxRelease );
        }

        addChild( box );
        _boxes.push( box );
    }
}