Actionscript 3 addEventlistener、数组、as链接
我在这个函数中添加了10个带有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
框的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 );
}
}