Actionscript 3 as3为什么我的公共变量在变化?

Actionscript 3 as3为什么我的公共变量在变化?,actionscript-3,Actionscript 3,我有一个名为“currentsurgist”的var,我将问题归结为这两个函数 我相信。无论如何,第一次通过它工作并从数组跟踪变量。。。但是,第二次通过某些内容将其更改为[Event type=“soundComplete”bubbles=false cancelable=false eventPhase=2] 代码中有什么在改变这一点,或者我做错了什么? 非常感谢 关于如何保持其与此处分配的var相同的想法: currentMystery = "" + Mystries[4] + "";

我有一个名为“currentsurgist”的var,我将问题归结为这两个函数 我相信。无论如何,第一次通过它工作并从数组跟踪变量。。。但是,第二次通过某些内容将其更改为[Event type=“soundComplete”bubbles=false cancelable=false eventPhase=2]

代码中有什么在改变这一点,或者我做错了什么? 非常感谢

关于如何保持其与此处分配的var相同的想法:

currentMystery = "" + Mystries[4] + "";

公共静态变量Mystries:Array=新数组(“空”、“快乐”、“光明”、“悲伤”、“光荣”);
公共函数检查十年(e:Event=null)
{
如果(卸载<6)
{
宣布=正确;
current谜=“+Mystries[4]+”;
普拉德卡德(神秘);
}
}
公共函数praydcade(currentUnclustry:String)
{
////我的问题是关于当前的神秘。第一次通过
////它是有效的,但第二次通过它正在转变为
////类似于[Event type=“soundComplete”bubbles=false等。。。
痕迹(“祈祷十年称为:“+current谜”);
如果(宣布)
{
///设置公告前的暂停| |在所有祈祷之后添加功能
setTimeout(函数()
{
MainDoc.cplayer.text=当前谜团;
跟踪(“调用公告”+卸载);
跟踪(“称为宣布:神秘:“+Current神秘+”当前十年:“+DeCount”);
theAnnounce=新声音();
加载(新的URLRequest(“音频/玫瑰/宣布/”+Current神秘+“/”+Decadount+”.mp3”);
祈祷=一盎司。玩();
祈祷。添加监听器(Event.SOUND_COMPLETE,prayDecade);
宣布=虚假;
}, 2000);
}
其他的
{
如果(祈祷计数==0)
{
trace(“我们的父亲”+卸任);
//痕迹(爱);
开始=真;
///设置在我们的父亲面前暂停| |在所有祈祷之后添加特征
setTimeout(函数()
{
开始=真;
我们的父亲();
}, 2000);
}
如果(祈祷计数>0&&祈祷计数
代码中有什么在改变这一点,或者我做错了什么

“SoundChannel”的事件处理程序错误

Praying.addEventListener(Event.SOUND_COMPLETE, prayDecade );

prayDecade
中,将作为参数传递(),而不是等待的字符串。因此
[Event type=“soundComplete”bubbles=false cancelable=false eventPhase=2]
是事件的字符串表示形式。

您使用
prayDecade
方法作为声音完成事件的处理程序,并在代码中直接调用它。当它作为事件处理程序调用时,它接收的参数是一个事件对象,该对象被转换为
字符串并覆盖您的公共变量本地(
prayDecade
function)范围内的ble

我认为,如果您按照如下方式更新函数,您将得到预期的结果(假设
currentUnderstry
是类范围内的公共变量:

public function prayDecade(e:Event)
{
    trace("Pray Decade called: " + currentMystery);

    // ....
}
直接调用方法时,不要传递变量:

// Assuming currentDecade is in scope in the prayDecade method
prayDecade(/*currentMystery*/);
这是有效的。:)我如何向它传递一个变量?我想我不需要。每次我从数组中更改一个变量时,我都可以这样做。currentsury=“”+Mystries[4]+”;praydcade();我在函数中加了一个null,它就工作了,只是想知道是否有更好的方法:公共函数praydcade(e:Event=null)
// Assuming currentDecade is in scope in the prayDecade method
prayDecade(/*currentMystery*/);