フレーム 3 の im..ステージ名 scoreTxt にテキスト フィールドがあります。フレーム 3 で、TryClass を追加しました。
var Try:TryClass = new TryClass();
TryClass には updateScore の機能があります。フレーム 3 にいる場合、これは正常に機能します。したがって、私のコードは
public function updateScore(amount:int):void
{
score += amount;
if(score < 0) score = 0;
realNumber = score;
setInterval(updateDisplayedScore, 10);
}
public function updateDisplayedScore():void
{
displayedNumber += Math.round((realNumber-displayedNumber)/5);
if (realNumber - displayedNumber < 5 && realNumber - displayedNumber > -5)
{
displayedNumber = realNumber;
}
addZeros();
}
public function addZeros():void
{
var str:String = displayedNumber.toString();
MovieClip(root).scoreNa.text = str;
}
しかし、たとえば..ユーザーが死亡したか、必要なスコアに達した場合..このコードを使用して特定のフレームに移動するとします..
MovieClip(this.root).gotoAndStop("Main"); this code is on the class..
フレーム「メイン」に到達しますが、これへのポインティングエラー -->
MovieClip(root).scoreTxt.text
その「メイン」フレームはフレーム 4 にあります。まだ TryClass を追加していません。すべてのフレームに TryClass を追加する必要がありますか? それはどうですか?
質問で申し訳ありません..クラスで完全にコーディングする方法はまだわかりません..タイムラインやその他の外部クラスにアクセスします..アクションスクリプトのより深い言語を使用しないでください..初心者の方のみ..
フレーム「メイン」に移動したときの完全なエラーメッセージは次のとおりです
TypeError: Error #1009: Cannot access a property or method of a null object reference.
atTumba/addZeros()[C:\Documents and Settings\Chrissan\Desktop\Game and Docs\Game\Tumba.as:686]
atTumba/updateDisplayedScore()[C:\Documents and Settings\Chrissan\Desktop\Game and Docs\Game\Tumba.as:680]
atFunction/http://adobe.com/AS3/2006/builtin::apply()
atSetIntervalTimer/onTimer()
atflash.utils::Timer/_timerDispatch()
atflash.utils::Timer/tick()
これは Tumba.as の 686 行目です -MovieClip(root).scoreNa.text = str;
public function updateDisplayedScore():void
{
displayedNumber += Math.round((realNumber-displayedNumber)/5);
if (realNumber - displayedNumber < 5 && realNumber - displayedNumber > -5)
{
displayedNumber = realNumber;
}
addZeros(); -->> this is the line 680 of Tumba.as
}
setInterval について .. flash.utils.* をインポートしたところ正常に動作したため、クラスを追加したフレーム 3 では正常に動作しましたが、「メイン」フレームでは正常に動作しました。それは..