2011-03-22 88 views
0

我正在为Blackberry PlayBook开发ActionScript 3应用程序。将边框添加到flash.display.Loader

我正在用flash.display.Loader加载图像。

我想用5px黑色边框显示图像。

我该怎么做?

+0

作为一方,你将通过终端编译代码?我在前面遇到问题 – Saad 2011-03-22 19:34:05

+0

@Saad:我正在使用Flash Builder Burrito。我不知道这是你要求的。我也在使用Playbook模拟器。 – VansFannel 2011-03-22 19:41:27

回答

1

那么,这里有一种方法。首先将加载器放在5px的“背景”对象内。从左上角开始。

background = new Sprite(); 
addChild(background); 

loader = new Loader(); 

loader.contentLoaderInfo.addEventListener(Event.COMPLETE, 
    loaderCompleteHandler); 

loader.load(new URLRequest(url)); 

background.addChild(loader); 

// place loader 5 px. from top left 
loader.x = 5; 
loader.y = 5; 

然后根据图像的尺寸绘制背景(添加10个像素)。

private function loaderCompleteHandler(event:Event):void 
{ 
    var w:Number = loader.contentLoaderInfo.width; 
    var h:Number = loader.contentLoaderInfo.height; 

    var g:Graphics = background.graphics; 

    g.clear(); 

    // draw background 
    g.beginFill(0x000000); 
    g.drawRect(0, 0, w + 10, h + 10); 
    g.endFill(); 
} 

,而不是添加装载机背景Sprite对象,你也可以保持在现有的父容器和刚才添加的背景雪碧到容器本身,而是装载机后部。 (在这种情况下,您可以使用Shape而不是Sprite作为背景)

您也可以在其现有父容器中的加载器对象周围绘制边框。请参阅flash.display.Graphics API。

0

获取图像的宽度和高度,然后在图像后面绘制一个bg(+ x width + y height)。如果您将子项添加到mc中,则可以使用flash.display库中的.graphic,或者只使用bitmapdata并添加到位图中,前者更容易。

+0

@VansFannel mj。在下面的帖子中有一个很好的例子,但我应该提醒你图形类似乎是CPU密集型的。当我使用画线绘制图形程序时,绘制框非常密集;我结束了使用bitmapData。然而,我正在模拟进餐时间的动作(1s更新),所以如果你有很多图像被同时添加,你可能会遇到问题 – Saad 2011-03-22 20:31:35