我试图使用共享对象,但我不知道 我如何保存事件监听器(例如,如果之前已经删除了鼠标事件) 保存)。 让我们说" onThis"函数删除鼠标事件
function onThis(event:MouseEvent):void
{
levAll.theLev.gotoAndStop(2);
boxAll.levHit.removeEventListener(MouseEvent.CLICK, onLevHit);
}
//save function
function onSaveBtn(event:MouseEvent):void
{
sharedObject.data.levData = levAll.theLev.currentFrame;
// save that boxAll.levHit mouse event removed
}
//load function
function onLoadBtn(event:MouseEvent):void
{
levAll.theLev.gotoAndStop(sharedObject.data.levData);
// load that boxAll.levHit mouse event removed
}
阿米尔,对不起,我刚看到你的答案,但我不知道如何使用 完整项目中的代码示例。我尝试了以下代码(请参阅编辑)。虽然看起来不是很优雅,但它确实很有用,特别是如果我将它用于我拥有的所有听众。你能举个例子吗?谢谢!*
EDIT
//public class
var hiton:Boolean;
//initialization
hiton = true;
boxHit.panel.addEventListener(MouseEvent.CLICK, onBoxPanel);
boxHit.addEventListener(MouseEvent.CLICK, onBoxHit);
saveBtn.addEventListener(MouseEvent.MOUSE_DOWN, onSaveBtn);
loadBtn.addEventListener(MouseEvent.MOUSE_DOWN, onLoadBtn);
// functions
function onBoxPanel(event:MouseEvent):void
{
hiton = false;
}
function onBoxHit(event:MouseEvent):void
{
if(hiton){
//do something
}
}
function onSaveBtn(event:MouseEvent):void
{
sharedObject.data.hitData = hiton;
}
function onLoadBtn(event:MouseEvent):void
{
hiton = sharedObject.data.hitData;
}
答案 0 :(得分:1)
我不确定我完全理解它,但也许
var EventExists:Boolean ;
EventExists=boxAll.hasEventListener(MouseEvent.CLICK);
sharedObject.data.levData = EventExists;
答案 1 :(得分:0)
您不应该以您描述的方式为共享对象中的某些按钮“保存”您的事件侦听器;你必须从错误的角度接近这个。
很难说你应该做什么,因为你还没有真正解释你想要完成什么,你的变量名和函数名没有意义。但是,通常,您要执行的操作是保存按钮与之交互的对象的状态,并根据该状态添加或删除事件侦听器。
function onThis(event:MouseEvent):void
{
levAll.theLev.gotoAndStop(2);
boxAll.levHit.removeEventListener(MouseEvent.CLICK, onLevHit);
boxAll.levHit.wasClicked = true;
}
function onSaveBtn(event:MouseEvent):void
{
sharedObject.data.levData = levAll.theLev.currentFrame;
sharedObject.data.clickedLevHit = boxAll.levHit.wasClicked;
}
function onLoadBtn(event:MouseEvent):void
{
hiton = sharedObject.data.hitData;
if (!sharedObject.data.clickedLevHit) {
boxAll.levHit.addEventListener(MouseEvent.CLICK, onLevHit);
}
}