-1

我正在尝试创建一个具有多个场景的 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");
}
4

1 回答 1

0

尝试更改您的 Tween 代码:

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,您将在事件中搜索引用,因此无论如何它都应该找到它。

顺便说一句:您不应该以大写字母开头命名变量。这样,您将更容易区分对象和类。

于 2012-06-22T16:24:17.413 回答