私は本当にこの小さな問題に全力を尽くしました。2 週間の長い夜でした。より経験豊富な AS3 開発者の 1 人が 1、2 分で修正してくれることを私は知っています。
だから私はドラッグ可能なオブジェクトを使った非常に単純なゲームを持っています.MOUSEUPで手放すと、アニメーションが再生され、次に対象にぶつかり、別のアニメーション(スプラットまたは何か)が作成されます。ムービー クリップ内の 1 フレームのみで hitTest を使用します。(これはうまくいきます)
上記のeventListenerの削除に問題があります。アニメーションの最後に削除しようとしたため、アニメーションの最後からステージからremoveEventListenerを言うASがありますが、これは機能しなかったため、動的に追加した後にremoveEventListenerを試しました舞台へのアニメーション、まだ喜びはありません。
this.removeEventListener や currentTarget のような単純なものであることを望みましたが、残念ながら違います。
本当に他に思いつかなくて、
ASの愛のために助けてください。説明も素晴らしいでしょう。人々がどのように時間がないかを理解しているので、本当にどんな意見でも大歓迎です。
以下は私の 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);**
}
}
}