我正在尝试创建一个包含多个场景的Web应用程序,当我尝试使用我创建的包含多个EventListener的按钮访问下一个场景时出现错误,用于动画目的。
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 :(得分: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,您将在事件中搜索引用,因此无论如何都应该找到它。
BTW:你不应该用大写字母命名你的变量。这样,您就可以更轻松地将对象与类区分开来。