0

私は何時間も答えを探していました:

私のプログラム:

ステップI)ボタンをクリックすると、addchildを介してビットマップが表示されます。ステップII)別のボタンをクリックすると、removechildを介してビットマップが削除されます。

ステップI)は完全に機能しますが、ステップII)は機能しません。

私のコードのいくつかの部分を以下に示します。

まず、私は宣言します:

public var ajoutcarte4:MovieClip;

第二に、私が書いた主な機能で:

var ajoutcarte4:Bitmap = new Bitmap();

次に、最初のボタンでトリガーされるサブ関数で、ビットマップをステージに追加します(fl_bitmapはビットマップアイテムを返す関数です)。

ajoutcarte4 = fl_bitmap(couleur4+figure4);
ajoutcarte4.x=445;
ajoutcarte4.y=370;
addChild(ajoutcarte4);

これまでのところ良いですが、2番目のボタンによってトリガーされる別のサブ関数を介して子を削除したい場合:

removeChild(ajoutcarte4);

ajoutecarte4が明らかにnullであるため、機能しません...状態が赤くなるエラー2007 ...

4

2 に答える 2

1

これを変える

public var ajoutcarte4:MovieClip;

public var ajoutcarte4:Bitmap;


次に、この行を完全に取り出します

var ajoutcarte4:Bitmap = new Bitmap();


そして最後に

// add this like with this code
ajoutcarte4 = new bitMap()
ajoutcarte4 = fl_bitmap(couleur4+figure4);
ajoutcarte4.x=445;
ajoutcarte4.y=370;
addChild(ajoutcarte4);
于 2012-01-19T02:15:31.693 に答える
0

MovieClip型のフィールドajoutcarte4を宣言しましたが、関数で、Bitmap型のローカル変数ajoutcarte4を宣言し、それをステージに追加します。

2番目の関数では、インスタンス化されたことがないフィールドMovieClipを削除しようとすると、エラーが発生します。

宣言を次のように変更します。

public var ajoutcarte4:Bitmap;

と電話:

ajoutcarte4 = new Bitmap(); 

(なしvar)。そうすれば、すべて正しく機能するはずです。

于 2012-01-19T01:57:33.327 に答える