Re: [问题]怎么从as2转成as3?

楼主: KawasumiMai (さあ、死ぬがいい)   2014-06-26 20:57:45
※ 引述《bettyHo (betty)》之铭言:
: 谢谢大大!!!
: 但是试过后出现下面的错误讯息:
: TypeError: Error #1006: loadMovie 不是函数。
: at testtest_fla::all_1/frame2()
AS3没有loadMovie,那是AS2特有的方法
要load东西
要使用Loader
var loader:Loader=new Loader()
loader.contentLoaderInfo.addEventListener(Event.COMPLETE,onLoaded)
loader.load(new URLRequese("xx.aa"))
: ※ 引述《bettyHo (betty)》之铭言:
: : 想询问各位大大
: : 下面这一段
: : 改怎么转成as3?
: : onClipEvent (load)
: : {
: : xd = this._x;
: : }
: : onClipEvent (enterFrame)
: : {
: : this._x = this._x + (xd - this._x) * 2.000000E-001;
: : }
: : 我已经手动转过了
: : 失败了~~
: : = =
: : 自己转的结果:
: : var xd = this._x;
: : mmm.addEventListener(Event.ENTER_FRAME, doClick1);
: : function doClick1(e:Event):void{
: : this._x = this._x + (xd - this._x) * 2.000000E-001;
: : }
: : 哪里错了?
: : 抓头发中
原本onClipEvent
在AS2是挂在mc上的
所以那时候的this会是mc本身
但是AS3的EventListener是写在上一层的时间轴上的
所以在那个时间轴的this,就不会是mc,可能是stage或TimeLine
addEventListener要挂在物件上才有效果
不知道你的mmm是否就是mc本身
mmm.addEventListener(Event.ENTER_FRAME,doClick1)
(为什么EnterFrame的function会叫doClick?)
function doClick1(e:Event){
//这里面的e是事件本身
//e.currentTarget则是呼叫的事件主,以这个例子来说等于mmm
//如果多个物件呼叫同一个function,可以利用e.currentTarget判断来源
var obj=e.currentTarget //方便取用
obj.x = obj.x + (xd - obj.x) * 2.000000E-001;
//obj.x相当于原本挂在上面的this.x
}

Links booklink

Contact Us: admin [ a t ] ucptt.com