【问题标题】:Loaded Flex SWF overlaps Flash components加载的 Flex SWF 与 Flash 组件重叠
【发布时间】:2012-09-18 07:13:56
【问题描述】:

我正在处理一个 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);

当我尝试为 'loader' 设置宽度时,整个 flex 组件消失了。怎么回事?

【问题讨论】:

    标签: apache-flex flash loader stage


    【解决方案1】:

    解决方法:给加载的 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);
    

    【讨论】:

      猜你喜欢
      • 2011-01-22
      • 1970-01-01
      • 1970-01-01
      • 2011-07-28
      • 1970-01-01
      • 1970-01-01
      • 2011-04-24
      • 1970-01-01
      • 2010-12-22
      相关资源
      最近更新 更多