2013-03-09 69 views
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實例。Actionscript:平鋪圖像像背景重複-x

圖像重複-X

enter image description here

我得到奇怪的渲染結果: enter image description here

什麼,我做錯了什麼?

更新後

enter image description here enter image description here

+0

哈!有趣。已更新該帖子。它從精靈的中心開始繪製。爲什麼會這樣做? – Somebody 2013-03-09 16:20:46

回答

2

我不知道你想用保證金/ 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; 

這將拉伸杆和它的內容到任何寬度你指定 - 它可能更清潔和更靈活,如果你正在使用位圖(如漸變),拉伸時不會改變。

+0

嗯拉伸的好主意。你確定質量不會改變嗎?是的,我做錯了。應該從0,0到所需的寬度和高度以及x,y屬性的移動。 – Somebody 2013-03-09 19:51:45

+0

它不會影響質量 - 不。但要確定您可以將Bitmap.smoothing屬性設置爲true。另外,如果它只是你想要的一個漸變,你可以[編程]來完成 - 不需要使用位圖,但是它更復雜一些。 – hunter 2013-03-09 20:47:28

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;