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