2011-01-21 5 views
0

タイムラインのステージにライブラリからオブジェクトを追加すると(タイムラインにスクリプトを置くことによって)動作しますが、この.asファイルからオブジェクトを追加しようとすると何も起こりません。外部の.asファイルからステージへのaddChild()

package com.wld.utils { 
    import flash.display.MovieClip; 

    public class ISGallery extends MovieClip { 
     var imageArray:Array = new Array(); 

     public function ISGallery() { 

     } 

     public function addImageURL(imageURL:String):void { 
      imageArray.push(imageURL); 
      var gallerythumb:ISGalleryThumb = new ISGalleryThumb(); 
      addChild(gallerythumb); // nothing happens 
     } 
    } 
} 

ありがとうございました。

+1

ISGalleryのインスタンスを作成し、どこにステージに追加しますか? – Alex

+0

はい、エラーは発生していません。フレーム1にISGalleryインスタンスを作成し、var galleryを入れた場合は:ISGalleryThumb = new ISGalleryThumb(); addChild(gallerythumb); ISGalleryThumbのインスタンスがステージ上に配置されますが、.asファイルの場合は何も起こりません。 –

+0

ナー、私の悪い、私はそんなにばかです。オブジェクトインスタンスを作成することは、ステージに追加することと同じではありません。私はあなたの答えをどう受け入れるのですか? :) –

答えて

1

最初にオブジェクトを追加する関数は関数に過ぎません。

public function test() 
{ 
//addcode here 
} 

その後、メインクラスに戻ってグー、およびインポート「com.wld.utils.ISGallery」

package 
{ 

    import com.wld.utils.ISGallery; 

を、今、あなたのメインのコード内で外部のメインクラスを使用してVARを作成しますコード。

var myExternalClass:ISGallery = new ISGallery(); 

ついにあなたは、オブジェクトの追加 し、新しいクラスを追加された機能を呼び出す必要があります。

addChild(myExternalClass);  
myExternalClass.hello(); 

ここでは例を示します。

package 
{ 
    import flash.display.*; 
    import flash.text.*; 
    import flash.events.*; 
    import flash.ui.*; 
    import flash.utils.*; 
    import flash.media.*; 
    import com.wld.utils.ISGallery; 
    public class Test extends MovieClip 
    { 
     public function Test() 
     { 
      var myExternalClass:ISGallery = new ISGallery(); 

      addChild(myExternalClass); 
      myExternalClass.hello(); 
     } 
    } 
} 

となりまし外部クラス:

(注意:スプライトもムービークリップすることができ拡張)で

package com.wld.utils 
{ 
    import flash.display.*; 
    import flash.text.*; 
    import flash.events.*; 
    import flash.ui.*; 
    import flash.utils.*; 
    import flash.media.*; 
    public class ISGallery extends Sprite 
    { 
    var myFirstText:TextField = new TextField(); 
    var mySecondText:TextField = new TextField(); 
     public function ISGallery() 
     { 
     } 
     public function hello() 
     { 
      myFirstText.text = "test"; 
      mySecondText.y = 40; 
      mySecondText.text = "hello"; 
      addChild(myFirstText); 
      addChild(mySecondText); 
     } 
    } 
} 

洙ここ

は、メインのコードがどのように見えるかです最終製品はこのように見えるはずです。

出力は一つのテキストが「こんにちは」と言って、「テスト」

およびその他の約1/4の方法ダウンと言っている必要があります。

関連する問題