2011-08-09 5 views
0

スライダクラス(SliderUI)があり、そのクラスにスライダとトラック画像をスプライトとして渡しています。スプライトの子画像の幅を設定する

私がしようとしているのは、もう1つのイメージをスプライトとして渡し、スライダでマスキングするための幅を変更することです。 (ボリュームスライダーを動かすと拡大または縮小します)

スプライトの幅を変更しようとすると、スプライトが表示されず、スプライトがコンテナになって消えてしまいます。

これで、スプライトの子イメージを使用してスプライトのサイズを変更するにはどうすればいいですか(それはローダーオブジェクトによってロードされます)。

答えて

0

はい、スプライトのサイズを変更すると消えます。スプライトの幅と高さを手動で設定するとスケーリングのように機能し、スプライトに何も描画されていない場合は表示されません(スケールを「何もなし」に設定できないため)。 スプライトの幅と高さを設定するには、スプライトの上に何かを描画します。透明の長方形:

sprite.graphics.lineStyle(1, 0, 0); 
sprite.graphics.drawRect(0, 0, myWidth, myHeight); 

いくつかの詳細はこちら: http://www.kirupa.com/forum/archive/index.php/t-274593.html

UPD:あなたがイメージがロードされる前に、スプライトにサイズを設定した場合、スプライトが

var sprite:Sprite = new Sprite; 
var loader:Loader = new Loader(); 
sprite.addChild(loader); 
loader.load(new URLRequest("road_01.png")); 

表示されません。

Solution1:Loaderでイベントを完了し、その後にサイズを設定します。

loader.loaderInfo.addEventListener(Event.COMPLETE, onImageLoaded); 

private function onImageLoaded(event:Event):void 
{ 
    // whatever you want to make with sprite 
    // e.g. 
    sprite.width = 100; 
} 

対処方法2:サイズを変更するスプライトのscaleXscaleYプロパティを使用します。

var sprite:Sprite = new Sprite; 
var loader:Loader = new Loader(); 
sprite.addChild(loader); 
loader.load(new URLRequest("road_01.png")); 
sprite.scaleX = 0.5; 
+0

どのように私はそれを行うことができます...私はスプライトの画像をロードしていると私はスプライトで、この画像のサイズを変更したいです? –

+0

もし私が正しいとすれば、あなたはこのようなものがあります: 'var sprite:Sprite = new Sprite; \t \t \t \t var loader:Loader = new Loader(); \t \t \t \t sprite.addChild(loader);\t \t \t \t loader.load(new URLRequest( "road_01.png")); '画像がロードされる前にスプライトにサイズを設定すると、スプライトは表示されません。解決策1:ローダー 'loader.loaderInfo.addEventListener(Event.COMPLETE、onImageLoaded);'で完了イベントを監視し、その後にサイズを設定します。 Solution2:スプライトの 'scaleX'と' scaleY'プロパティを使ってサイズを変更します。 – moropus

+0

それはあなたのために働いたのですか? – moropus

関連する問題