- 积分
- 459
- 注册时间
- 2015-3-27
- 最后登录
- 2016-6-12
- 在线时间
- 6 小时
- 威望
- 3
- 贡献
- 0
- 金币
- 194
- 钢镚
- 5
- 交易凭证
- 0
- 分享
- 0
- 精华
- 0
- 帖子
- 7
- 主题
- 5
TA的每日心情 | 慵懒 2015-12-4 10:02 |
|---|
签到天数: 1 天 [LV.1]初来乍到
中士

- 威望
- 3
- 贡献
- 0
- 金币
- 194
- 钢镚
- 5
|
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下有些什么方法和属性
[inherited] 一开始没add之前,很多为Null 那么Ok 等他addChild(mc)之后,我再来一个断点
看到 [inherited] 里面有 application = TestFlex@95db0a1 这个TestFlex就是我的swf了 然后就简单了 mc.application.show(); 还是报错 改一下 强制MovieClip(mc).application.show();
搞定 帅气!
|
评分
-
查看全部评分
|