2012-03-29 8 views
1

私のゲームの一番下にスコアがあります。 Scoreという新しいレイヤーを作成し、テキストエリアをドラッグしてシンボルに変換し、Scoreという名前を付けました。次にインスタンス名をScoreに設定しました。ActionScript経由でFlashテキストを更新する

私のフラッシュゲームのメインクラスはMain.asと呼ばれています。しかし、私はコード内で作ったScoreテキストエリアにアクセスできないようです。このエラーが発生します:

1046: Type was not found or was not a compile-time constant: Score.

私は何を欠席しましたか?コード内からテキストエリアのテキストを更新するにはどうすればよいですか?

編集:忘れてしまったこと私はシンボルに変換したときに「ActionScriptの書き出し」ボックスをクリックしました。それが重要なのはMovieClip型です。

+1

すべての質問などで一日中働いていたことを知りたいと思っています。 – Marty

+0

ハハ、私が忙しいので私が間違って残したクラスソフトウェアエンジニアリングプロジェクトは100%完璧です。基本的にフラッシュのスネークゲーム:) –

答えて

2

あなたは、ActionScript 3のシンボルをエクスポートする場合、フラッシュは(それはあなたが両方のクラス定義とインスタンスのために使用されるのと同じ名前です)指定された名前でそれのためのクラスを作ります。

  • このエラーは、クラスとインスタンスに同じ名前が使用されているために発生します。
  • これらをチェックし、異なる名前を使用する必要があります。
  • 私は通常私のインスタンスが_mc

例えばで終わる名前あなたのケースでは、あなたが(テキストフィールドの追加ロジックを作成する場合を除き、それはそのを持っていますので、ActionScript用にエクスポートしないでくださいクラスとしてScoreを持っており、あなたのインスタンスscore_mc(または単にscore小文字S.

0

レイヤー名は違いはありません。動的テキストフィールドのインスタンス名は、それを含むクリップではなく、設定する必要があります。また、MovieClipに変換する必要はありません。ステージにテキストフィールドを作成し、静的でないことを確認して、インスタンス名にアクセスしてアクセスすることができます。

例、私は私のテキストフィールドを使用すると、ムービークリップ内に提出してテキストを入れたい場合は、クリップとテキストフィールドの両方に名前を付ける必要があるだろうscoreText_txt

//inside main.as 
scoreText_txt.text="new text"; 

に名前を付けました。あなたはそれを使ってアクセスします。

MyMovieClip.MyText.text="new text" 
0

と名前を付ける必要があります自身のクラス)または動的に(addChild()経由)、ステージに追加したい

インスタンス名がScoreされた状態で、これに行くを与える:。

Score.text = "822"; 

私はキャメルケースと区別するために小文字のインスタンス名を使用することをお勧めcのために使用されるレース。上記は、経験豊かな開発者にstaticプロパティtextScoreの内で更新するものとして読まれます。

関連する問題