2011-03-10 3 views
0

前回私がフラッシュに触れたのは10年前です。つまり、かなり錆びています。私はヨーロッパのインタラクティブmapを作ります。私は強く緑色のサークルにマウスオーバー/アウト効果を持たせたい(最初はサイズの変更を考えていたが、不透明フェーディングに行くかもしれないと思う)。私にはいくつかの問題があります。下のコードは動作していますが、fadingin(...)が呼び出される前に、フェードアウト(...)を強制終了する良い方法はありますか?そうでない場合は、フェイダイン(...)したときに現在の不透明度値を取得し、その値を開始値にするスマートな方法があります。ユーザーがマウスをすばやく外に動かすと、効果はあまりうまく見えません。また、マップ内のすべてのサークルでこれらの関数を使用する最も良い方法は何ですか?ユーザーがマウスをドラッグすると、トレースエフェクトが作成されます。多くのボタンと同じmouseover/-out効果

import fl.transitions.Tween; 
import fl.transitions.easing.*; 

var outTween:Tween; 

myButton.addEventListener(MouseEvent.MOUSE_OVER, fadingout); 
myButton.addEventListener(MouseEvent.MOUSE_OUT, fadingin); 

function fadingout(event:MouseEvent): void { 
outTween = new Tween(myButton, "alpha", None.easeNone, 1, 0, 1, true); 
} 

function fadingin(event:MouseEvent): void { 
outTween = new Tween(myButton, "alpha", None.easeNone, 0, 1, 1, true); 
} 
+0

GTweenのようなトゥイーンエンジンを見てください。それはあなたが探しているものを達成する "onComplete"ハンドラを持っています。 Link:http://gskinner.com/libraries/gtween/ –

答えて

1

おそらく私は円のクラスを作成します。そこで、不透明度やサイズを変更するためのmouseoverとmouseoutのイベントリスナーを作成します。二ノートで

は、私はあなたがおそらくあなたのために十分なはず http://www.greensock.com/tweenlite/

TweenLite greensockからTweenLiteまたはTweenMaxを使用することをお勧めします。それのプロパティに見て、特にあなたが

上書きを述べオーバーライドトゥイーンを制御-propertyを「上書き」:intが同じターゲットの 他のトゥイーンがこのトゥイーンで を上書きする方法(および場合)を制御します。そこから選択する いくつかのモードがありますが、唯一の 最初の二つは、( OverwriteManager.initない限り TweenLiteでご利用いただけます)あなたは非常によく、緑の円のためのクラスを作成することができ

+1

クラスに慣れていない場合は、大丈夫です。このような小さなプロジェクトでも、オブジェクト指向プログラミングを読んでおくことをお勧めします。しかし、あなたはそれらを使用する必要はありません... – ThomasM

1

呼ば てきた、とその中にすべてのリスナーとトゥイーンされた反応の特徴が含まれています。非常に堅実な方法。

あなたはまた、単一のリスナーを設定して同じことを達成するために、すべてのmouseableの要素を含むムービークリップ/スプライト上event propagationを活用することがあります。基本的に、あなたが含むオブジェクトにリスナーを追加

var myContainer:Sprite = new Sprite(); 
//add all elements 
myContainer.addEventListener(MouseEvent.MOUSE_OVER, over, true, 0, false); 
myContainer.addEventListener(MouseEvent.MOUSE_OUT, out, true, 0, false); 

private function over(e:MouseEvent):void 
{ 
TweenLite.to(e.target, .5, { alpha:1.0 }); 
} 

private function out(e:MouseEvent):void 
{ 
TweenLite.to(e.target, .5, { alpha:0.5}); 
} 

、およびイベント子供たちに伝えられ、子供たちはイベントの指示を受け取ります。 MouseEvent引数で受け取った伝播オブジェクトの ".target"がここのキーです。

ここでは、他の人が触れたように、私は素晴らしいTweenLiteフレームワークを使用しています。

幸運と幸運!

関連する問題