0
var bar:Sprite=new Sprite();        
bar.graphics.clear();
var y:*=stage.stageHeight-(el.sprite.height+margin);    
bar.graphics.beginBitmapFill((el.sprite.content as Bitmap).bitmapData);
bar.graphics.drawRect(margin,y,stage.stageWidth-margin*2,el.sprite.height);
bar.graphics.endFill();

el.spriteはLoaderインスタンスです。

繰り返す画像-x

ここに画像の説明を入力してください

奇妙なレンダリング結果が得られます: ここに画像の説明を入力してください

私が間違っているのは何ですか?

更新された投稿

ここに画像の説明を入力してください ここに画像の説明を入力してください

4

2 に答える 2

2

margin / yの値で何をしようとしているのかわかりませんが、x = y = 0から開始して、コンテナー内でビットマップを繰り返したい場合は、次のように機能します。

var bar:Sprite = new Sprite();
bar.graphics.beginBitmapFill((el.sprite.content as Bitmap).bitmapData);
bar.graphics.drawRect(0,0,desiredBarWidth, desiredBarHeight);
bar.graphics.endFill();

パディング/マージンについては、バーをコンテナー内に配置し、そのように配置します。もちろん、最初の画像(矢印ではなくグラデーション)を使用している場合は、次のようにするだけで済みます。

var bar:Sprite = new Sprite();
bar.addChild(el.sprite.content as Bitmap);
bar.width = desiredBarWidth;

これにより、バーとその内容が指定した幅に引き伸ばされます。引き伸ばされても変化しないビットマップ(グラデーションなど)を使用している場合は、おそらくよりクリーンで柔軟性があります。

于 2013-03-09T16:59:03.487 に答える
0

これに変更して、私を助けました。しかし、私はまだ理解していません。何が問題でしたか?

bar.graphics.clear();
var y:*=stage.stageHeight-(el.sprite.height+margin);  
bar.graphics.beginBitmapFill((el.sprite.content as Bitmap).bitmapData);
bar.graphics.drawRect(0,0,stage.stageWidth-margin*2,el.sprite.height);
bar.graphics.endFill();
bar.y=y;
于 2013-03-09T16:38:15.970 に答える