被SWFLoader加载进来的程序里无法Alert

songguoqinglinux 2011-02-15 06:45:07
大家好,有两个程序main.mxml和ButtonExample.mxml。前者用SWFLoader将后者加载进来,后者中有一个Button按钮,我想点击之后输出"HelloWorld",可是加载进来之后,点击按钮报错了,说“无法访问空对象引用的属性或方法。”,请问这是什么原因?
...全文
68 点赞 收藏 12
写回复
12 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
songguoqinglinux 2011-02-17
7楼正解,结贴给分!
回复
pilihou 2011-02-17
popupmanager这个包导入,然后var pop:PopupManager=new PopupManager();再试试看行不
回复
蓝色_冰点 2011-02-16
main.mxml没有引用Alert
虽然是通过SwfLoader加载,但ButtonExample.mxml所需要的一些资源,主要是皮肤,还是会从main中去寻找定义。因为main中没有定义Alert,所以ButtonExample就找不到Alert所需的资源。SwfLoader默认加载到同一个程序域中,所以导致ButtonExample到main中寻找资源。

在加载之前,设置SWFLoader的loaderContext属性值为一个新的loaderContext对象,该loaderContext的applicationDomain设置为new ApplicationDomain(),这样就可以解决问题了
例如:
var ct:LoaderContext=new LoaderContext();
ct.applicationDomain=new ApplicationDomain();
loader.loaderContext=ct;
loader.scaleContent=false; //最好加上这个,否则自动放大
//然后再执行加载
回复
songguoqinglinux 2011-02-16
[Quote=引用 5 楼 wanggh_work 的回复:]

方法 buttonClick 在ButtonComponent.swf中还是在
[/Quote]
在ButtonComponent.swf中
回复
wanggh_work 2011-02-16
方法 buttonClick 在ButtonComponent.swf中还是在
回复
songguoqinglinux 2011-02-16
[Quote=引用 2 楼 liuyyuns 的回复:]

把你的代码贴上来
[/Quote]
我贴一下主要代码吧

//点击按钮的事件
public function buttonClick():void {
mx.controls.Alert.show('You clicked this button!');
}

<mx:SWFLoader id="myLoader" width="100%" height="100%" source="ButtonComponent.swf"/>
回复
songguoqinglinux 2011-02-16
[Quote=引用 1 楼 lieri111 的回复:]

楼主是不是没有引用mx.controls.Alert
[/Quote]
引用了。
回复
liuyyuns 2011-02-15
把你的代码贴上来
回复
passself 2011-02-15
楼主是不是没有引用mx.controls.Alert
回复
相关推荐
发帖
Flex
创建于2007-12-13

4328

社区成员

多媒体/设计 Flex
申请成为版主
帖子事件
创建了帖子
2011-02-15 06:45
社区公告
暂无公告