【问题标题】:Adding a border to a flash.display.Loader为 flash.display.Loader 添加边框
【发布时间】:2011-03-22 18:20:02
【问题描述】:

我正在为 Blackberry PlayBook 开发一个 ActionScript 3 应用程序。

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

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

我该怎么做?

【问题讨论】:

  • 作为一方,您打算通过终端编译代码吗?我在这方面有问题
  • @Saad:我正在使用 Flash Builder Burrito。我不知道这是不是你要求的。我也在使用 Playbook 模拟器。

标签: actionscript-3 image adobe loader blackberry-playbook


【解决方案1】:

嗯,这是一种方法。首先,您将加载器放置在 5 px 的“背景”对象中。从左上角开始。

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 px。)。

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 对象之外,您还可以将其保留在其现有的父容器中,并将背景 Sprite 添加到该容器本身,但在加载器之后。 (在这种情况下,您可以使用 Shape 而不是 Sprite 作为背景)

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • @VansFannel mj。在下面的帖子中有一个很好的例子,但我应该警告你图形类似乎是 cpu 密集型的。当我使用画线和画框构建绘图程序时非常密集;我最终使用了 bitmapData。但是,我正在模拟进餐时间的运动(1 秒更新),因此如果您同时添加大量图像,您可能会遇到问题
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-28
    • 2018-06-25
    • 1970-01-01
    相关资源
    最近更新 更多