2012-03-06 8 views
0

私は「パン」エフェクト(これがパンならばわかりません)を、フラッシュ(as3)で表示しているマスクよりも大きいちょうど水平に)。非常に単純な効果ですが、私はトゥイーンに問題があります。AS3 Tweenクラスとパンのエフェクト

まず、トゥイーンクラスを試しました。しかし、それはトゥイーンの速度(トゥイーンのフレームまたは秒を設定するパラメーター)で混乱を招いてしまいました。 「開始」パラメータは簡単ですが、オブジェクトのx値です。問題はありません。左端または右端にあるかどうかに応じて、 "end"パラメータも簡単です(0または画像の終わりです)(トゥイーンは、それらのボタンの上にあるときに始まり、停止しているときにstopTweenで終わります。トゥイーンが終了したとき)。私が直面している問題は、「持続時間」のパラメータです。すべてのトゥイーンで同じスピードが必要です。明らかに、私が静的な値を置くと、私がイメージの真ん中にいれば、スピードは半減します。

私はこれを行うためのアルゴリズムを作成する方法を理解しようとしています。私はまず画像のどのパーセントを現在の "x"値として計算したかのようなものを試しました:

私が50%であれば、50フレームでトゥイーンにしてください。

私が90%の場合、10フレームでトゥイーンを作成します。

私が20%であれば、80フレームでトゥイーンを作成してください。

しかし、私はそれをより簡単にする方法があると思います。たぶん私は間違っている、と私は必要なものではありません...私はちょうど同じスピードで変位の効果をしようとしています(スピードに達するまで、より大きい)。

これに関するアイデアや有用なリンクはありますか?私は多くのチュートリアルを見ましたが、主にマウスの位置に関連した異なる動作をしました。

ありがとうございます!

答えて

0

あなたが欲しい:

duration = (end - begin)/pixels_per_ms 
0

は、Tweenクラスのしやすさのプロパティを使用しないのはなぜ?見てください

TweenMaxページで試すことができる便利なサンプルウィジェットがあります。

0

この効果を達成するための方策は、スピード/オーバー/ディスタンスを測定することです。この式は簡単になり、コードが少なくなります。この方法では、トゥイーンライブラリは不要です。

var MaskCenter=100; 
var speed=1/10; 
var distance=boxdummy.mouseX-MaskCenter; 


if(mouseX<250){ 
box.x-=(distance*speed); 
} 
if (mouseX>250) 
{ 
box.x -= speed + accel; 
} 

何かがそうです!

私はあなたのために(FLA)ファイルを作成することを私に教えてください

関連する問題