[英]Flex SWF assets loaded into Flash SWF at runtime within same ApplicationDomain
[英]Loaded Flex SWF overlaps Flash components
我正在處理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”類加載到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);
當我嘗試為“加載程序”設置寬度時,整個flex組件都消失了。 這是怎么回事?
解決方案:將掩碼添加到已加載的swf。
來源: http : //help.adobe.com/zh_CN/FlashPlatform/reference/actionscript/3/flash/display/Loader.html#methodSummary
從不受信任的源(例如,Loader對象的根SWF文件的域以外的域)加載SWF文件時,您可能需要為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);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.