2012-02-23 8 views
1

MovieClipオブジェクトのwidthプロパティにtweenを適用しようとしていますが、幅と位置も変更するたびに必要ありません。それ。オブジェクトのxとyを変更せずに幅を片側に変更したい。Tween Actionscript 3でオブジェクトを移動させないオブジェクトの幅

私は両方を試してみて、同じ結果を出しました。

var c:Tween = new Tween(left, "scaleX", Strong.easeOut, 1, 1.5,20,true); 
var c:Tween = new Tween(left, "width", Strong.easeOut, 20, 200,20,true); 

ムービークリップの中心に合わせて変形を適用していると思います。しかし、私はそれがどのように変わることができるかわかりません。

助けてくださいか?

+0

質問;あなたは上記の 'c'の衝突エラーを得ていませんか? – Marty

+1

私は両方を同時に使用しませんでしたが、どちらも私に同じ結果をもたらしました – Ayoub

答えて

2

あなたの問題は、ムービークリップを正しく描画しないことです。境界ボックスはx、y、0から始まりません。
できること
1. 0,0の位置にグラフィックを持つようにムービークリップを修正します。
または
2.「左」のオブジェクトを、位置0,0および位取りで別のオブジェクトに配置します。
または
3.あなたは比例再サイズのアニメーションは、デルタは、ムービークリップ内のイメージのoffesetある

var c:Tween = new Tween(left, "width", Strong.easeOut, 20, 200,20,true); 
var c1:Tween = new Tween(left, "x", Strong.easeOut, left.x, left.x+delta*200/(2*20),20,true); 


を働いている間のx座標も移動することができます。

0

最初に、デフォルトのTweenエンジンから離してください。より良い方法があります(これが主な理由です、デフォルトのTweenエンジンは、長い間、プラットフォーム開発者から注目を受けていません)。いくつかの可能性は、found hereまたはウェブ上である可能性があります。

はい、そのオブジェクトが位置を変更すると、その幅をトゥイーンすると、登録ポイントがそのオブジェクトに対して座標0にないことが示されます。解決策は次のとおりです。

  1. 可能であれば、オブジェクトの登録ポイントを変更してください。おそらく、Flash IDEを介して、またはプログラムによって、regポイントがオブジェクトに相対的に0になるようなコンポーネントを配置します。

  2. 反復ごとに展開値を半分ずつシフトします。この小さなスニペットはトゥイーンに翻訳することは簡単なはず、と説明している

:登録ポイントはx軸上(死点にある場合

this.addEventListener(Event.ENTER_FRAME, _loop); 
function _loop(event:Event):void 
{ 
    derp.width += 10; // every iteration makes width 10 px bigger 
    derp.x += 5; // 10/2 = 5; might want to calculate this dynamically. 
} 

ベア心​​の中で、これだけ、うまく機能します)をオブジェクトに追加します。

関連する問題