
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()
为什么会这样呢 展开
index.Home.addEventListener(MouseEvent.CLICK, clickBtn);
function clickBtn(e:MouseEvent):void
{
gotoAndPlay(2);
}
index是主场景里的一个元件 .Home是index里的一个元件 但错误提示
TypeError: Error #1009: 无法访问空对象引用的属性或方法。
at _fla::MainTimeline/frame1()
为什么会这样呢 展开
3个回答
展开全部
根据“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);
}
展开全部
root["index"]["Home"]
or
root["index"].Home
---------------------
你的代码没写在场景帧上
元件名字跟代码的不一致
看错误提示 应该是: 目前index里面没有Home
or
root["index"].Home
---------------------
你的代码没写在场景帧上
元件名字跟代码的不一致
看错误提示 应该是: 目前index里面没有Home
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
gotoAndPlay(2);改为》e.target.gotoAndPlay(2);
追问
可是我是要让它跳到主舞台的第二帧 不是home的第二帧
追答
那就MovieClip(root).gotoAndPlay(2); as3已经没有_root这种写法了,最高的容器是stage,然后里面放各种object,应该说stage也是object。你肯定是写在桢上的代码,已经不建议了,最好文档类,修改维护起来方便。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询