【问题标题】:Going from one scene to next and gettingType1009 Null object reference errors从一个场景转到下一个场景并出现Type1009 Null 对象引用错误
【发布时间】:2015-01-13 04:49:56
【问题描述】:

好的,所以在我的游戏主菜单中,我有一个发光效果,因此当您将鼠标悬停在不可见的按钮“startdesu”上时,脚本将使整个菜单发光,淡入淡出。此代码(从事件侦听器开始)已针对菜单上的每个按钮重复,并对按钮实例名称和函数名称进行了适当的更改。唯一的问题是,当我单击“startdesu”并转到下一个场景时,我开始收到重复错误,“TypeError:错误 #1009:无法访问空对象引用的属性或方法。 在 bjvb_fla::MainTimeline/increaseGlow()"。我尝试在单击按钮时删除发光事件侦听器,但没有成功。请帮忙!;0;

为了简洁起见,这是基本代码,但如果有帮助,我可以发布整个内容。 (另外,当我从游戏 返回 到开始菜单时,我得到相同的 Null 错误。

import flash.filters.*;
import flash.events.Event;

stop();
wow.alpha=0.5;

var menuGlow:GlowFilter = new GlowFilter();

menuGlow.color = 0xffffff;

menuGlow.blurX = 20;

menuGlow.blurY = 20;

menuGlow.alpha = 0;

menu.filters = [menuGlow];

var glow:Boolean = false;


startdesu.addEventListener(MouseEvent.MOUSE_OVER, addGlow);
startdesu.addEventListener(MouseEvent.MOUSE_OUT, removeGlow);
startdesu.addEventListener(Event.ENTER_FRAME, increaseGlow);

function addGlow(e:MouseEvent):void
{
glow = true;
}

function removeGlow(e:MouseEvent):void
{
glow = false;    
}

function increaseGlow(e:Event):void
{
if(glow == true)
{

    menuGlow.alpha = menuGlow.alpha + 0.02;
}
else if(glow == false)
{
    menuGlow.alpha = menuGlow.alpha - 0.02;
}
menu.filters = [menuGlow];
}

【问题讨论】:

    标签: actionscript-3 flash flash-cs6


    【解决方案1】:

    这是可能导致错误的行:

    menu.filters = [menuGlow];
    

    您的第二个场景中可能没有实例名称为“menu”的对象。您可以通过添加检查对象是否存在来修复错误,如下所示:

    function increaseGlow(e:Event):void
    {
        //if there's no menu object, return
        if(!menu) return;
    
        if(glow == true) {
            menuGlow.alpha = menuGlow.alpha + 0.02;
        } else {
            menuGlow.alpha = menuGlow.alpha - 0.02;
        }
        menu.filters = [menuGlow];
    }
    

    但正确的解决方案是删除事件侦听器。不知道为什么它对您不起作用,但您应该可以在切换场景之前将其添加到 click 事件处理程序中。

    startdesu.removeEventListener(Event.ENTER_FRAME, increaseGlow);
    

    当您尝试删除事件侦听器时遇到什么错误?

    【讨论】:

    • 不用担心,您的 increaseGlow 功能似乎有所帮助!非常感谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-17
    • 1970-01-01
    相关资源
    最近更新 更多