我真的在这个小问题上尽了最大的努力,这是 2 周的漫长夜晚,我知道你们中的一个更有经验的 AS3 开发人员会在一两分钟内解决,我希望如此。
所以我有一个非常简单的游戏,你可以使用 MOUSEUP 放开可拖动的对象,然后播放动画然后点击主题并制作另一个动画(splat 或其他东西)。仅在影片剪辑内部的一帧上使用 hitTest。(这很好用)
我在删除所说的 eventListener 时遇到问题,我尝试在动画结束时删除它,所以在动画的最后一个从舞台上会有 AS 说 removeEventListener ,但这不起作用,所以我在动态添加后尝试了 removeEventListener动画到了舞台,依旧没有欢乐。
我希望这很简单,比如 this.removeEventListener 或 currentTarget,但可惜没有。
实在想不出别的了
为了爱,请帮助。一个解释也将是惊人的,我理解人们是如何没有时间的,所以任何输入都将不胜感激。
下面是我的AS,如果有人想看FLA,我可以发上来,我很乐意分享。
注意它可能很明显我是一个新手,所以请在我的路上帮助我....
import flash.display.MovieClip;
import flash.events.*;
var test:dart = new dart();
addChild(test);
circle.addEventListener(MouseEvent.MOUSE_DOWN, fl_ClickToDrag);
function fl_ClickToDrag(event:MouseEvent):void
{
circle.startDrag();
}
stage.addEventListener(MouseEvent.MOUSE_UP, fl_ReleaseToDrop);
function fl_ReleaseToDrop(event:MouseEvent):void
{
circle.stopDrag();
addEventListener(Event.ENTER_FRAME, checkIfHitTest);
function checkIfHitTest(Event)
{
if (circle.hitTestObject(square))
{
trace("true, the circle and square are colliding");
var s:blood_splat = new blood_splat();
addChild(s);
s.x = mouseX;
s.y = mouseY;
**removeEventListener(Event.ENTER_FRAME,checkIfHitTest);**
}
else
{
trace("false, the circle and square are not colliding");
var s:blood_splat = new blood_splat();
addChild(s);
s.x = mouseX;
s.y = mouseY;
s.alpha = 0.1;
**removeEventListener(Event.ENTER_FRAME,checkIfHitTest);**
}
}
}