1

movieClip を頻繁にスケーリングしていて、サイズに応じて画面上の特定の場所に配置する必要があります。

スケーリングしたら、ムービー クリップの WIDTH と HEIGHT を取得するにはどうすればよいですか?

trace(my_mc.width); /// would equal 333

/// This code makes my movie clip fit in the correct proportions. 
my_mc.height = stage.stageHeight;
my_mc.scaleX = my_mc.scaleY;

/// Its been resized!
trace(my_mc.width); /// STILL equals 333

..

新しい幅と高さを取得する方法はありますか?

4

2 に答える 2

1

ステージのスケーリングの問題が発生している可能性があります。

ステージ サイズに依存している場合は、次のように設定します。

import flash.display.StageAlign;
import flash.display.StageScaleMode;

stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT;

提供された例は問題をカプセル化していません。期待どおりに動作します。

サイズスケール

フレームベースのアニメーションを実行している場合は、トレースステートメントのタイミングも可能です。おそらく、期待するライフサイクルに沿ったものではなく、サイズのアーティファクトを表示しているのでしょう。

于 2012-05-22T03:35:22.340 に答える
-1

ご尽力いただきありがとうございます。答えが見つかりました!:)


import flash.display.MovieClip;

/// My stage is 500 by 500.
/// My Image or movieClip is 446 by 688.
/// I am calling it my_mc.
trace(my_mc.width + " by " + my_mc.height); /// OUTPUT: 446 by 688

// I want the height to match the height of my stage but keep the same 
// proportions. So I use the code below. WORKS GREAT!
my_mc.height = stage.stageHeight;
my_mc.scaleX = my_mc.scaleY;

// But if I want to trace the width and the height it will still be the same.
trace(my_mc.width + " by " + my_mc.height); /// OUTPUT: 446 by 688.


///So I make a NEW movieClip below after I scaled it.
var NewMC:MovieClip = my_mc as MovieClip; 

/// NOW WHEN I TRACE IT... :)
trace(NewMC.width + " by " + NewMC.height); /// 324.1 by 500

// YES!!! I can't believe I figured this out on my own! Woo hoo! :)
于 2012-05-22T04:05:12.383 に答える