Actionscript:像背景repeat-x一样的平铺图像

时间:2013-03-09 16:14:07

标签: actionscript

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

enter image description here

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

我做错了什么?

更新了帖子

enter image description here enter image description here

2 个答案:

答案 0 :(得分: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;

这会将条形及其内容拉伸到您指定的任何宽度 - 如果您使用的是在拉伸时不会改变的位图(例如渐变),它可能更干净,更灵活。

答案 1 :(得分: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;