2016-10-19 7 views
0

以下のチュートリアルでは、外部XMLファイルから画像をインポートするために以下のことをまとめました。この子画像を削除するにはどうすればいいですか?Flash/AS3

しかし、どうすれば削除できますか?

私はremoveChildを読みましたが、refを渡す必要があるようですが、そのrefが何であるか分かりません。私はそれが(画像)を含むが、それらのすべてがスローされるかもしれないと思ったいくつかのことを試しました未定義のプロパティのアクセスエラー。

これは私がインポートに使用しているコードは次のとおりです。

var imgrequest:URLRequest = new URLRequest(artwork); 
var loader:Loader = new Loader(); 

    loader.contentLoaderInfo.addEventListener(Event.COMPLETE, on_loadComplete); 

    function on_loadComplete(e:Event):void { 
     var image:DisplayObject = loader.content;  
      image.x = 0; 
      image.y = 4; 
      image.width = 150; 
      image.height = 150; 
     addChild(image);  
     Bitmap(image).smoothing = true; 
    } 
    loader.load(imgrequest); 

私はそれを削除するために何が必要ですか?

答えて

0

中括弧の中に変数を宣言すると、その変数はそれらの中括弧内にのみ存在します。したがって、その変数を使用して画像を削除しようとすると(カッコ内にまだ存在します)、ダイスはありません。

グローバル変数などのより永続的にアクセス可能なオブジェクトになるメソッドを使用してそのイメージを格納する方法を見つける必要があります(同様にグローバルに格納されます)。今、あなたは

image.parent.removeChild(image); 

またはそれは、配列indを削除するその配列の要素のインデックスである

array[ind].parent.removeChild(array[ind]); 

でいた場合に行うことができます。

0

addChild(image);を使用した後は、後でremoveChild(image);を使用しても機能しませんか?

また、on_loadCompleteの最初の行は、単にimage = loader.content;である可能性があります。すべての機能の外にあるvar image:DisplayObject;を宣言してみてください。
removeChildは、別の機能で後で使用されるときはimageを理解します。

+0

年齢のために開いていたタブに最終的に答えるときの瞬間...古い回答(@NealDaviesによる)が働いたら、正しいものとしてマークしてください。 –

関連する問題