如何解决我的问题?
当我点击按钮时,我加载了所有图像和图像按钮但之后当我尝试单击关闭按钮(图像4)时,事件监听器无法监听,因为所有内容都设置在另一个功能中。
private function onShop(evt:MouseEvent)
{
shop.removeEventListener(MouseEvent.CLICK, onShop);
var container:Sprite = new Sprite();
var ibutton:Sprite = new Sprite();
addChild(container);
addChild(ibutton);
ibutton.buttonMode = true;
function loadImage(path:String):Loader
{
var request:URLRequest = new URLRequest(path);
var loader:Loader = new Loader();
loader.load(request);
return loader;
};
var image1 = loadImage("image/inventory/shop_windoww.png");
image1.x = 200;
image1.y = 40;
this.addChildAt(image1,8);
var image2 = loadImage("image/inventory/title_window.png");
image2.x = 200;
image2.y = 14;
container.addChild(image2);
var image3 = loadImage("image/inventory/icon_window.png");
image3.x = 177;
image3.y = 7;
container.addChild(image3);
var image4 = loadImage("image/inventory/close.png");
image4.x = 891;
image4.y = 39;
ibutton.addChild(image4);
var image5 = loadImage("image/inventory/button_ok.png");
image5.x = 450;
image5.y = 485;
ibutton.addChild(image5);
var image6 = loadImage("image/inventory/button_ok.png");
image6.x = 782;
image6.y = 485;
ibutton.addChild(image6);
image4.addEventListener(MouseEvent.CLICK, test);
}
private function test(evt:MouseEvent)
{
image4.removeEventListener(MouseEvent.CLICK, test);
trace("ca marche");
}
答案 0 :(得分:0)
在onShop范围之外声明您的变量。它们似乎更有意义作为全局变量,而不仅仅是本地变量(因为你试图在测试方法上使用onShop方法上声明的相同变量)。
我也向你推荐一些观点:
for
循环加载所有图像(遵循上一个建议后); [event.currentTarget]使用事件侦听器主动处理Event对象的对象。例如,如果用户单击“确定”按钮,则当前目标可以是包含该按钮的节点或已为该事件注册事件侦听器的其祖先之一。