2012-06-22 107 views
-1

我試圖創建一個包含多個場景的Web應用程序,當我嘗試使用我創建的包含多個EventListeners用於動畫目的的按鈕訪問下一個場景時出現錯誤。AS3 TypeError:錯誤#1009

Button確實使我到下一個場景,但錯誤仍然發生。跟蹤和調試後,錯誤似乎發生在Mouse_Out事件。

我對AS3還很新,所以有人請向我解釋我的代碼出錯的地方,如果可能的話,爲我糾正錯誤還是有更好的寫代碼的方法?提前致謝。

的錯誤涉及:

TypeError: Error #1009: Cannot access a property or method of a null object reference. 
at fl.transitions::Tween/setPosition() 
at fl.transitions::Tween/set position() 
at fl.transitions::Tween() 
at Portfolio_fla::MainTimeline/about_btnOut() 

我的代碼:

import flash.events.MouseEvent; 
import fl.transitions.Tween; 
import fl.transitions.easing.*; 
import fl.transitions.TweenEvent; 

about_btn.buttonMode = true; 
about_btn.mouseChildren = false; 
about_btn.alpha = 0.3; 
about_btn.addEventListener(MouseEvent.MOUSE_OVER, about_btnOver); 
function about_btnOver(event:MouseEvent):void 
{ 
    var AboutAlphaOver:Tween = new Tween(about_btn,"alpha",Regular.easeIn,0.3,1,0.1,true); 
} 
about_btn.addEventListener(MouseEvent.MOUSE_OUT, about_btnOut); 
function about_btnOut(event:MouseEvent):void 
{ 
    var AboutAlphaOut:Tween = new Tween(about_btn,"alpha",Regular.easeIn,1,0.3,0.1,true); 
} 
about_btn.addEventListener(MouseEvent.CLICK, about_btnClick); 
function about_btnClick(event:MouseEvent):void 
{ 
    gotoAndPlay(1,"About"); 
} 

回答

0

試圖改變自己的吐溫代碼:

var AboutAlphaOut:Tween = new Tween(about_btn,"alpha",Regular.easeIn,1,0.3,0.1,true); 

要:

var AboutAlphaOut:Tween = new Tween(event.currentTarget,"alpha",Regular.easeIn,1,0.3,0.1,true); 

我不確定它是否可以工作(我對Flash IDE不太熟悉),但我認爲可能是因爲其他場景沒有對按鈕的引用而出現錯誤。使用event.currentTarget,您將在事件中搜索引用,所以無論如何應該找到它。

順便說一句:你不應該用大寫字母來命名你的變量。這樣你就可以更容易區分對象和類。

+0

感謝您的迅速回復,它完全有效。 –