4

myBtnというボタンがあります。

フレーム1でのアクションでは、次の両方を試しました。

myBtn.visibility = false;

myBtn.enabled = false;

どちらも私に同じエラーを与えます:

1120:未定義のプロパティmyBtnへのアクセス。

4

6 に答える 6

5

わかった。これを行うにはいくつかの方法があります。1 つ目は、タイムラインを使用することだけです。

方法 1 - タイムライン

ステップ 1. [ウィンドウ] タブに移動し、コンポーネントを選択します。Button インスタンスをステージにドラッグします。

ステップ 2. プロパティ パネルの「インスタンス名」を「myBtn」に置き換えます (引用符を使用しないでください:P)。

ステップ 3. タイムラインのフレーム 1 にこのコードを入力します。

myBtn.visible = false;

方法 2 - ドキュメント クラス

ステップ 1. タイムラインのようにインスタンスをステージに配置する

ステップ 2. クラスを作成します。それを Resource と呼びましょう。

ステップ 3. 追加

import flash.display.SimpleButton; 

手順 4. public static メンバーを作成する

public static var BTN_MY_BUTTON:SimpleButton;

ステップ 5. ドキュメント クラスで、これをコンストラクターに追加します。

addEventListener(Event.ADDED_TO_STAGE, init, false, 0, true);

ステップ 6. この関数を追加する

private function init(e:Event):void

 Resource.BTN_MY_BUTTON = myBtn;
}

ステップ 7. これで、どのクラスでもボタンにアクセスできます。

Resource.BTN_MY_BUTTON.visible = false;
于 2010-01-14T00:45:18.697 に答える
2

現在ドキュメントクラスがある場合は、ステージに配置されたインスタンスをドキュメントクラスで宣言する必要があります。

例:クラスButtonのオブジェクトをステージに配置し、それをmyBtnと呼ぶ場合、ドキュメントクラスは次のようになります。

package {
  import flash.display.MovieClip;
  import flash.display.Button;

  public class DocClass extends MovieClip {
    public var myBtn:Button;  // !!! This is the line that lets you access the instance

    public function DocClass() {
      //..
    }
  }
}

それ以外の場合は、docクラスを持っているが、インスタンスを宣言していないという組み合わせで、その1120エラーが発生します。

于 2010-01-13T17:38:51.090 に答える
2

1120: 未定義のプロパティ myBtn へのアクセス。

ボタンに名前がないことを意味します。ボタンのプロパティ パネルでボタンの名前を指定する必要があります。フィールド (インスタンス名) に myBtn という名前を入力し、アクションに次のように記述します。

myBtn.visible=true; // visible button

また

myBtn.visible=false; // or to make your button invisible;
于 2011-04-24T12:20:36.293 に答える
1

ライブラリにボタンがある場合は、次を使用してステージに新しいインスタンスを追加できます。

import fl.controls.Button;

var myBtn:Button = new Button();
addChild(myBtn);

次に、それを参照して、次のように非表示にすることができます。

myBtn.visible = false;

@Ipsquiggleが提案したように、これは別のクラスで行う方がよいでしょう。

于 2010-01-13T17:32:32.617 に答える
0

AS3 コンパイラが名前 'myBtn' を解決できないため、このエラーが発生しています。

「myBtn」とは何ですか? シンボル、コンポーネント、またはいずれかの名前付きインスタンスですか?

それを明確にしたら、次のコードがその仕事をします:

myBtn.visible = false;
于 2010-01-13T16:53:40.420 に答える
0

タイムラインからボタンにアクセスすることに非常に関心がある場合は、このプロセスが大幅に簡素化されるため、AS2 を使用することをお勧めします。エディターに配置されたインスタンスへのアクセス、タイムラインからのコードの実行などを含む多くのシナリオは、AS3 ではそれほど重要ではなくなります。

AS3 に固執したい場合は、コードをフレーム 1 に配置する代わりに、ドキュメント クラスを作成する必要があります。そこから、ステージ上にあるオブジェクトを宣言できます。これにより、オブジェクトへのアクセスが簡単になります。

于 2010-01-13T17:06:03.027 に答える