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

songguoqinglinux 2011-02-15 06:45:07
大家好,有两个程序main.mxml和ButtonExample.mxml。前者用SWFLoader将后者加载进来,后者中有一个Button按钮,我想点击之后输出"HelloWorld",可是加载进来之后,点击按钮报错了,说“无法访问空对象引用的属性或方法。”,请问这是什么原因?
...全文
92 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
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

4,328

社区成员

发帖
与我相关
我的任务
社区描述
多媒体/设计 Flex
社区管理员
  • Flex
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧