簡體   English   中英

加載的Flex SWF與Flash組件重疊

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM