我正在使用Flash项目,但需要Flex的一些功能。所以我创建了一个Flex应用程序并构建它来获取.swf文件。
在Flash项目中,我使用'Loader'类来加载Flex Builder创建的.swf文件。此.swf文件已加载并在舞台上显示,但是,它与舞台上的所有其他闪存组件重叠。重叠的方向是向右和向下的。
flex mxml文件(component.mxml):
<s:Application xmlns:...
width="160" height="120">
...
</s:Application>
使用'Loader'类加载到flash:
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);
当我尝试为'loader'设置宽度时,整个flex组件消失。发生了什么事?
答案 0 :(得分:0)
解决方案:为加载的swf添加一个遮罩。
从不受信任的源(例如,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);