私はこの問題をちょっと疑問に思っています。私はそれを削除する前に数秒間、ユーザーのマウスに続く素敵な小さなツールチップムービークリップを持っています。私の問題は、既にそこに1つがある場合、それを削除しますが、私はMOTION_FINISHイベントを削除したように見えず、まだ起動し、おそらく新しいツールチップを削除するということです。ムービークリップを使用してMOTION_FINISHの前にAS3トゥイーンを削除します
私は、基本的にvar tween(smallhelp_panel).deleteAll();などの広告申込情報に入れたいと思っています。 私はtweenlight関数killtweensof(mc)を見た。しかし私は、私が30k行のAS3コードで以下に取り上げたトゥイーンを使用しました。
ここに私のツールチップハンドラがあります。私は私のムービークリップは、「smallhelp_panel」で、私はそれが既に存在するかどうかを確認し、それを削除
シンプル
Main_Warning("Please don't forget to save!",5);
でそれを呼び出します。ただし、alphaおよびMOTION_FINISHのトゥイーンはまだ存在し、新しいsmallhelp_panelsに問題を引き起こします。
public function Main_Warning(the_text:String, myTimer:int = 4){
if(smallhelp_panel != null){
stage.removeChild(smallhelp_panel);
removeEventListener(Event.ENTER_FRAME, trackmouse);
smallhelp_panel = null;
}
smallhelp_panel = new small_help();
smallhelp_panel.name = "myWarning";
smallhelp_panel.x = mouseX - 50;
smallhelp_panel.y = mouseY + 15;
smallhelp_panel.helptext.text = the_text;
stage.addChild(smallhelp_panel);
addEventListener(Event.ENTER_FRAME, trackmouse);
var myTween:Tween;
myTween = new Tween(smallhelp_panel, "alpha", None.easeOut, 1, 0, myTimer, true);
tweenholder = myTween;
tweenArray.push(tweenholder);
myTween.addEventListener(TweenEvent.MOTION_FINISH, removeTween);
}
これは私のツールチップハンドラです。
参照目的のために私のトゥイーンリムーバーは、次のとおりです。
はマウスでツールチップを移動public function removeTween(e:TweenEvent = null):void{
e.target.removeEventListener(TweenEvent.MOTION_FINISH, removeTween);
if(smallhelp_panel != null){
removeEventListener(Event.ENTER_FRAME, trackmouse);
stage.removeChild(smallhelp_panel);
smallhelp_panel = null;
}
}
と私のマウストラッカーは単純です:あなたはMOTION_FINISHイベント追加したためだ
public function trackmouse(e:Event):void{
smallhelp_panel.x = mouseX - 50;
smallhelp_panel.y = mouseY + 15;
}
Iこれを試してみると完璧に動作します。 私はトゥイーンがガベージコレクションされている間に問題が発生し、オブジェクトとホルダーを使って試しました。このオブジェクトは、1つのトゥイーンしか存在しないインスタンスのために機能しましたが、複数を追加すると、配列が必要であることがわかりました。だから、私の理論的根拠は、オブジェクトが機能していれば、そのオブジェクトを配列に格納することであった。 初心者の間違いだった。しかし、セクションを終了すると、配列とオブジェクトをクリアしてそれらのリソースを解放します。 これは魅力的なように機能し、十分にありがとうとは言えません。 –
一度は十分です:)あなたは大歓迎です。将来的にはTweenLite/TweenMax(http://www.greensock)を使用することをお勧めします。com/greenlite /)または別のトゥイーンライブラリ?彼らは通常fl.transitions.Tweenよりもはるかに優れた性能を発揮し、管理が容易であり、便利なAPIも提供されます。 – weltraumpirat
私はおそらく将来のプロジェクトのためになります。私はそれについて考えていましたが、あなたが振り返ってみると、どれくらいのコードを取り除かなければならないのかを見てみると、そのような作業の引き受けはあまりにも負担になります。しかし私はそれを将来のプロジェクトで使用します。 –