flash as3.0侦听器怎么再次使用
importflash.events.MouseEvent;importflash.events.Event;varoY:Number=red.y;varzj:Numbe...
import flash.events.MouseEvent;
import flash.events.Event;
var oY:Number = red.y;
var zj:Number = 0;
red.addEventListener(MouseEvent.CLICK,jump);
function jump(e:MouseEvent):void
{
stage.addEventListener(Event.ENTER_FRAME,judgment);
}
function stop_jump()
{
red.y = oY;
stage.removeEventListener(Event.ENTER_FRAME,judgment);
}
function judgment(s:Event)
{
zj += 0.05;
red.y = oY - Math.sin(zj) * 20;
if (red.y > oY)
{
stop_jump();
}
else
{
red.addEventListener(MouseEvent.CLICK,jump);
}
}
red是场景上的一个MC。
Q:第一次运行,点击red的时候能正常的做出一个跳跃运动,跳跃结束后,我再点red,为什么就不能再次跳跃了,是注销侦听器的代码没写好吗?请问该怎么写才能达到每点一次,red便跳跃一次。小弟没分了,希望老鸟们帮帮忙,感激不尽~ 展开
import flash.events.Event;
var oY:Number = red.y;
var zj:Number = 0;
red.addEventListener(MouseEvent.CLICK,jump);
function jump(e:MouseEvent):void
{
stage.addEventListener(Event.ENTER_FRAME,judgment);
}
function stop_jump()
{
red.y = oY;
stage.removeEventListener(Event.ENTER_FRAME,judgment);
}
function judgment(s:Event)
{
zj += 0.05;
red.y = oY - Math.sin(zj) * 20;
if (red.y > oY)
{
stop_jump();
}
else
{
red.addEventListener(MouseEvent.CLICK,jump);
}
}
red是场景上的一个MC。
Q:第一次运行,点击red的时候能正常的做出一个跳跃运动,跳跃结束后,我再点red,为什么就不能再次跳跃了,是注销侦听器的代码没写好吗?请问该怎么写才能达到每点一次,red便跳跃一次。小弟没分了,希望老鸟们帮帮忙,感激不尽~ 展开
4个回答
展开全部
经测试脚本正常使用,,希望能给加分。
以下是修改后的代码:
import flash.events.MouseEvent;
import flash.events.Event;
var oY:Number = red.y;
var zj:Number = 0;
var redBoolean:Boolean;
red.addEventListener(MouseEvent.CLICK,jump);
function jump(e:MouseEvent):void
{
redBoolean = stage.hasEventListener(Event.ENTER_FRAME);
if (! redBoolean)
{
stage.addEventListener(Event.ENTER_FRAME,judgment);
}
}
function stop_jump()
{
red.y = oY;
zj = 0;
stage.removeEventListener(Event.ENTER_FRAME,judgment);
}
function judgment(s:Event)
{
zj += 0.05;
red.y = oY - Math.sin(zj) * 20;
if (red.y > oY)
{
stop_jump();
}
}
以下是修改后的代码:
import flash.events.MouseEvent;
import flash.events.Event;
var oY:Number = red.y;
var zj:Number = 0;
var redBoolean:Boolean;
red.addEventListener(MouseEvent.CLICK,jump);
function jump(e:MouseEvent):void
{
redBoolean = stage.hasEventListener(Event.ENTER_FRAME);
if (! redBoolean)
{
stage.addEventListener(Event.ENTER_FRAME,judgment);
}
}
function stop_jump()
{
red.y = oY;
zj = 0;
stage.removeEventListener(Event.ENTER_FRAME,judgment);
}
function judgment(s:Event)
{
zj += 0.05;
red.y = oY - Math.sin(zj) * 20;
if (red.y > oY)
{
stop_jump();
}
}
追问
哥们儿,十分感谢你,程序正确,并且简单易懂,不给你分不行啊,正在努力做任务,有分了再采纳你给你加分~~别急哈~~~
AiPPT
2024-09-19 广告
2024-09-19 广告
随着AI技术的飞速发展,如今市面上涌现了许多实用易操作的AI生成工具1、简介:AiPPT: 这款AI工具智能理解用户输入的主题,提供“AI智能生成”和“导入本地大纲”的选项,生成的PPT内容丰富多样,可自由编辑和添加元素,图表类型包括柱状图...
点击进入详情页
本回答由AiPPT提供
展开全部
else
{
red.addEventListener(MouseEvent.CLICK,jump);
}
这段去掉试试
{
red.addEventListener(MouseEvent.CLICK,jump);
}
这段去掉试试
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
stop_jump()这个函数中的stage.removeAddEventListenr(....)这个东西给他注销了试试看,感觉就是这里的原因,因为你这个侦听还要再次使用,所以你不能使用一次之后就撤销撒!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2012-04-04
展开全部
red.addEventListener(MouseEvent.CLICK,jump
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询