ayiaq1 发表于 2015-9-10 10:44:54

flex发布swf与flash发布SwF通讯

flex比较简单

派发加冒泡:
dispatchEvent(new Event("onLoaded",true));
公开自己方法
public function show():void
{
                                trace("flex show function");
                        }
然后将发布的各种swf拷贝到 flash的项目下

flash项目:
private function init(e:Event = null):void
                {
                        removeEventListener(Event.ADDED_TO_STAGE, init);
                        // entry point
                        loader = new Loader();
                        loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loaded);
                        loader.load(new URLRequest("TestFlex.swf"));
                }
               
                private function loaded(e:Event):void
                {
                        mc = loader.content as MovieClip;
                        mc.addEventListener("onLoaded", mcLoadedHandler); //侦听 没什么好说的
                        addChild(mc);
                }
               
                private function mcLoadedHandler(e:Event):void
                {
                        MovieClip(mc).application.show();   //要在mc 添加进舞台之后才能找到相关东西,不然为null
                }
大概就是这样,说说我如何找到这个show的吧
首先就是各种折腾。 flex 加载进来的 loader.content 居然是一个mx.managers.SystemManager类,然后我进它类看了下接口无非就是继承的MovieClip那么ok 我把loader.content as MovieClip 然后MovieClip(mc).show();
必然就报错了,再打断点看mc下有些什么方法和属性
一开始没add之前,很多为Null 那么Ok 等他addChild(mc)之后,我再来一个断点
看到 里面有application = TestFlex@95db0a1 这个TestFlex就是我的swf了 然后就简单了 mc.application.show(); 还是报错 改一下 强制MovieClip(mc).application.show();
搞定 帅气!

eiyaya 发表于 2015-9-10 17:12:22

赞 赞 赞 赞 赞
页: [1]
查看完整版本: flex发布swf与flash发布SwF通讯