Actionscript 3 AS3-通过鼠标单击添加和删除OneInterFrame EventListener
尝试添加EventListener,然后单击鼠标删除EventListener。添加一个有效,但它不起作用。在布顿身上是加卢麦克,在巴顿身上是加卢克洛斯麦克Actionscript 3 AS3-通过鼠标单击添加和删除OneInterFrame EventListener,actionscript-3,event-listener,Actionscript 3,Event Listener,尝试添加EventListener,然后单击鼠标删除EventListener。添加一个有效,但它不起作用。在布顿身上是加卢麦克,在巴顿身上是加卢克洛斯麦克 gall_mc.addEventListener(MouseEvent.CLICK, scroller); function scroller(event:MouseEvent):void { var verticalCenter:Number = stage.stageHeight / 2; var limit:Num
gall_mc.addEventListener(MouseEvent.CLICK, scroller);
function scroller(event:MouseEvent):void
{
var verticalCenter:Number = stage.stageHeight / 2;
var limit:Number = stage.stageHeight - galleryHolder.height;
var speed:Number = 0.1;
var scrollY:Number = 0;
stage.addEventListener(Event.ENTER_FRAME, scrollContent);
function scrollContent(e:Event):void
{
scrollY = - speed * (mouseY - verticalCenter);
galleryHolder.y += scrollY;
if (galleryHolder.y>0) { galleryHolder.y= 0;}
else if (galleryHolder.y< limit) { galleryHolder.y= limit; }
}
function eventHandler(event:Event):void
{
event.currentTarget.removeEventListener(Event.ENTER_FRAME, MouseEvent.CLICK.gall_close_mc);
}
}
========
看。你把这里的一些事情弄糊涂了。首先,removeEventListener将函数作为第二个参数,而不是MouseEvent.CLICK.gall\u close\u mc,它什么都不是。其次,在AS3中嵌套函数不是一个好主意,除非你真的不知道自己在做什么,而你不知道。第三,函数eventHandler将不会被调用,除非您显式地调用它,而您不是。重新措辞问题,解释你想做什么,可能附上一张图片。这里的人们正在努力学习,有些人帮助人们不要侮辱他们!你能指出我侮辱某人的地方吗?不过,代码仍然可以改进。在AS3中,以这种方式嵌套函数不是一个好主意,scroller是类/对象的一个很好的候选者。
gall_mc.addEventListener(MouseEvent.CLICK, scroller);
function scroller(event:MouseEvent):void
{
var verticalCenter:Number = stage.stageHeight / 2;
var limit:Number = stage.stageHeight - galleryHolder.height;
var speed:Number = 0.1;
var scrollY:Number = 0;
stage.addEventListener(Event.ENTER_FRAME, scrollContent);
function scrollContent(e:Event):void
{
scrollY = - speed * (mouseY - verticalCenter);
galleryHolder.y += scrollY;
}
gall_close_mc.addEventListener(MouseEvent.CLICK, closeClickHandler);
function closeClickHandler(event:MouseEvent):void
{
stage.removeEventListener(Event.ENTER_FRAME, scrollContent);
}
}
gall_close_mc.addEventListener(MouseEvent.CLICK, closeClickHandler);
function closeClickHandler(event:MouseEvent):void
{
// removeEventListener method params are :-
// 1. the event name, 2. the handler you assigned to it
stage.removeEventListener(Event.ENTER_FRAME, closeClickHandler);
}