flash as3 点击事件

stop();index.Home.addEventListener(MouseEvent.CLICK,clickBtn);functionclickBtn(e:Mous... stop();
index.Home.addEventListener(MouseEvent.CLICK, clickBtn);
function clickBtn(e:MouseEvent):void
{
gotoAndPlay(2);
}
index是主场景里的一个元件 .Home是index里的一个元件 但错误提示
TypeError: Error #1009: 无法访问空对象引用的属性或方法。
at _fla::MainTimeline/frame1()

为什么会这样呢
展开
 我来答
alanbabbage
推荐于2016-05-01 · TA获得超过979个赞
知道小有建树答主
回答量:755
采纳率:0%
帮助的人:1176万
展开全部

根据“at _fla::MainTimeline/frame1()”

 

可知,代码是放在主时轴上的第一帧(即主场景第一帧)

 

由于各种问题(什么问题不清楚)在stage加载完成后,你的flash并没有加载完成,包括你的元件index并没有完全加载,所以会报index空值错误(或者Home不存在,也会报错)

 

在确认到Home存后在(肉眼判断),在访问flash内容元件时,先等待flash加载完成,即在开始时,添加flash自身加载完成的事件,来检测完成加载后,再来进行所有功能的入口。

 

代码如下:

this.loaderInfo.addEventListener(Event.COMPLETE,completeFun);//添加事件,倾听加载完成
//加载完成事件接收函数
function completeFun(e:Event):void{
 this.loaderInfo.removeEventListener(Event.COMPLETE,completeFun);//将事件删除,释放空间
 //这里开始你的初始化等等操作,到这里,在flash中存在的元件都可以访问了
 stop();
 index.Home.addEventListener(MouseEvent.CLICK, clickBtn);
}
function clickBtn(e:MouseEvent):void{ 
 gotoAndPlay(2);
}
百度网友8ee570f
2013-09-29 · 超过21用户采纳过TA的回答
知道答主
回答量:81
采纳率:0%
帮助的人:70.9万
展开全部
root["index"]["Home"]
or
root["index"].Home
---------------------
你的代码没写在场景帧上
元件名字跟代码的不一致
看错误提示 应该是: 目前index里面没有Home
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
BadmanYao
2013-09-28 · TA获得超过635个赞
知道小有建树答主
回答量:1399
采纳率:0%
帮助的人:671万
展开全部
gotoAndPlay(2);改为》e.target.gotoAndPlay(2);
追问
可是我是要让它跳到主舞台的第二帧  不是home的第二帧
追答
那就MovieClip(root).gotoAndPlay(2);  as3已经没有_root这种写法了,最高的容器是stage,然后里面放各种object,应该说stage也是object。你肯定是写在桢上的代码,已经不建议了,最好文档类,修改维护起来方便。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式