knrt.net
当前位置:首页 >> FLASH AS3中的错误【尝试实例化的函数不是构造函数... >>

FLASH AS3中的错误【尝试实例化的函数不是构造函数...

var mystar:star = new star()然后把后面的star全改成mystar还有要注意的是代码不能写在影片剪辑中,而是要写在舞台上的主时间轴上

代码中可能用到了一些不存在的构造函数和类型,所以自然抛出这个异常.

这个是用Flex开发的游戏遇到的错误.因为Flex用class的格式把图片等资源编译到swf文件里面.从而没了该类的构造函数,当资源访问有问题时或别的错误时会抛出这个错误,我在网上看到有些说是embed应该写成Embed,但我试过不行,我也在为这个问题纠结着

package {import flash.display.Sprite;public class temp extends Sprite {public function temp() { super();graphics.lineStyle(1);graphics.moveTo(0, 0);graphics.lineTo(20, 20);graphics.moveTo(20, 0);graphics.lineTo(0, 20);}}}

直接调用方法.不用事件属性. 试一试

类被创建时第一个由系统自动执行的函数var xxx:MovieClip = new MovieClip(); //这时候创建MovieClip实例的同时 会调用这个实例 xxx里面的构造函数

类名称应该大写,你的a指代不明,而且addeventlistener前面用a指代是不对的,编译的时候a还没创建出来

var i:int=0; this.addEventListener(Event.ENTER_FRAME,onEnterFrame); function onEnterFrame(event:Event):void{ if(i<100){ addChild(new xing()); ++i; } } 需要注意的是,duplicateMovieClip是as2中独有的,作用是将当前场景中的一个对象复制,并新命名一个名字. as3中是没有的,只能重新从库中new一个出来.

报错的话,应该是:this["mc"+i].ni(i); 这里的this["mc"+i]不能识别成ftm所以会报错,你应该用(["mc"+i] as FTM).ni(i);,而且fla那里是没有this的,不能直接用this来写,有可能会报错,视情况而定,set和get一般都是用来处理private数据.用set设置private数据,用get得到这个数据.

把this.getChildByName("mc0").x中的this去掉

相关文档
网站首页 | 网站地图
All rights reserved Powered by www.knrt.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com