OpenLaszlo杀死加载的Flex应用程序的一些鼠标事件

时间:2012-04-29 14:57:38

标签: flex openlaszlo

这是关于OpenLaszlo(或更确切地说是Flex?)内部的问题:

我能够将完整的Flex应用程序swf加载到OpenLaszlo(主干版本,旧版本失败)。它适用于Flash 10以及11中。但OpenLaszlo似乎捕获或 阻止某些鼠标事件。当我将SWF添加到

中时
YFilesSWF.content.sprite (YFilesSWF is extending the window class)

然后大多数鼠标操作都起作用(例如Flex按钮),但有些则不起作用(相似的画布上有一些可点击的项目)。我进一步观察到当我将SWF添加到

YFilesSWF.sprite (YFilesSWF is extending the view)

,然后SWF不再对任何鼠标事件作出反应。这意味着窗口有点好,但还不够好。 我正在使用

flash.display.Loader

以正常方式加载SWF的类。这是我用来加载swf的AS3 Loader类实现,我在OpenLaszlo应用程序中包含

 public class LoadSwf extends Sprite
 {
      public var externalSwfLoader:Loader = new Loader();
      public var swfDisplayObject:DisplayObject;
      public var swfComObject:Object;

     public function LoadSwf(url:String,p:Sprite):void
     {
//                externalSwfLoader.mouseChildren = false;
//                this.mouseChildren = false;
//                p.mouseChildren = false;   

//                externalSwfLoader.mouseEnabled = false;
//                this.mouseEnabled = false;
//                p.mouseEnabled = false;   

            p.addChild(this);
          externalSwfLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, createSwfObjects);
          externalSwfLoader.load(new URLRequest(url));
     }

     public function createSwfObjects(evt:Event):void
     {
          var loaderInfo:LoaderInfo = evt.target as LoaderInfo;

          swfDisplayObject = evt.target.content;
          swfComObject = loaderInfo.content;

          addChild(swfDisplayObject);
     }
}

这是使用类的OpenLaszlo代码:

<class name="YFilesSWF" extends="window">

            <passthrough>
                    import LoadSwf;
            </passthrough>

            <attribute name="loadSwf" />

            <handler name="oninit"><![CDATA[
                    this.loadSwf = new LoadSwf("SimpleGraphEditor.swf", this.content.sprite);
            ]]></handler>
 </class>

有人知道OpenLaszlo在摧毁某些东西的地方和地点 Flex鼠标事件以及如何预防? 是否有一个比窗口更好的组件 保留Flex鼠标事件? 在OL组件源代码中修改需要什么?

谢谢!

0 个答案:

没有答案