[]【求助】怎么在自定义对象进行实例化的时候,给它绑定监听事件

我的需求是这样的:页面渲染后,有一排图标顺序排列,我点击某一个,就可以对其进行拖动操作。
 
我现在的思路是这样的:因为图标里有几个自定义属性,我定义了一个Class,继承自Box。我用List对其进行渲染,在list渲染的时候,执行renderHandler监听函数,对即将渲染的图标进行事件绑定操作。我测试的时候,想让他在鼠标点击的时候打印  test  ,但是没反应。
代码如下:
private function showFoods():void{

foodSprite = new Sprite();
Laya.stage.addChild(foodSprite);
//初始化当前菜品下标
this.index = 0;

//数据数组
foodArray = ;
foodArray.push(new Food("菜品1", "1", 0));
foodArray.push(new Food("菜品2", "2", 1));
foodArray.push(new Food("菜品3", "3", 2));
foodArray.push(new Food("菜品4", "4", 3));
foodArray.push(new Food("菜品5", "5", 4));

var list:List = new List();
list.itemRender = Food;
list.array = foodArray;
list.repeatX = 1;
list.repeatY = foodArray.length;
list.renderHandler = new Handler(this, onListRender);
Laya.stage.addChild(list);

}

private function onListRender(food):void{
trace(food);
food.on(Event.CLICK,this.test);
}

private function test():void{
trace("test");
}
我换了一种思路,是在实例化Food这个对象的时候,在构造函数里,就绑定事件监听函数。但是生成的JS代码,监听范围是整个页面,不是某一个图标。点击页面的任意一个地方,都会打印出 test 。
代码如下:
public function Food(dishName:String, type:String, index:Number){
this.dishName = dishName;
this.type = type;
this.index = index;
this.setPath();
this.on(Event.MOUSE_DOWN, Food, test);
}
private function test():void{
trace("test");
}
求高手指点啊,有没有好的办法完成这个需求啊,最近在做毕设,在这卡了两天了。。。
已邀请:

w1114367261

赞同来自:

你的onListTender(food)是有参方法你调用的时候没有传入相应参数进行对应的点击监听,
你的程序执行到这里会直接报空找不到food;

要回复问题请先

商务合作
商务合作