0

我正在处理一个 Flash 项目,但需要 Flex 的一些功能。因此,我创建了一个 Flex 应用程序并构建它以获取 .swf 文件。

在 Flash 项目中,我使用“Loader”类来加载由 Flex Builder 创建的 .swf 文件。此 .swf 文件已加载并很好地显示在舞台上,但是,它与舞台上的所有其他 Flash 组件重叠。重叠的方向是向右和向下。

flex mxml 文件(component.mxml):

<s:Application xmlns:...
width="160" height="120">
...
</s:Application>

使用“Loader”类加载到闪存:

var loader:Loader = new Loader();
loader.load(new URLRequest("component.swf"));
loader.x = COMPONENT_POS_X; //constant
loader.y = COMPONENT_POS_Y; //constant
stage.addChild(loader);

当我尝试为“加载器”设置宽度时,整个 flex 组件消失了。这是怎么回事?

在此处输入图像描述

4

1 回答 1

0

解决方案:为加载的 swf 添加一个掩码。

来源:http ://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/Loader.html#methodSummary

从不受信任的源(例如不是 Loader 对象的根 SWF 文件的域)加载 SWF 文件时,您可能希望为 Loader 对象定义一个掩码,以防止加载的内容(它是Loader 对象)从绘图到该遮罩之外的舞台部分,如以下代码所示:

import flash.display.*;
import flash.net.URLRequest;
var rect:Shape = new Shape();
rect.graphics.beginFill(0xFFFFFF);
rect.graphics.drawRect(0, 0, 100, 100);
rect.graphics.endFill();
addChild(rect);
var ldr:Loader = new Loader();
ldr.mask = rect;
var url:String = "http://www.unknown.example.com/content.swf";
var urlReq:URLRequest = new URLRequest(url);
ldr.load(urlReq);
addChild(ldr);
于 2012-09-18T10:14:06.490 回答