2011-09-09 7 views
1

私はそれを行うための方法を学んだが、私は自分の知識を向上させたい。わかりやすくするために、私はインポートを使用しないでください。AS3でオブジェクトを参照する方法は?

public class Main 
{ 
public function Main() 
{ 
new MyCustomObject(stage); 
} 
} 
public class MyCustomObject 
{ 
public var referenceStage:Stage = new Stage(); 

public function MyCustomObject(xxx:Stage) 
{ 
this.referenceStage = xxx; 
referenceStage.addChild(this); 
} 
} 

私はそれがインターネット上でチュートリアルを読んで学んだが、私はAS3内のオブジェクトを参照する方法についてのより多くのサンプルを見つけることができる場所を知ってほしいです。将来のコードでは、hitTestなどを追加したいと思います。

ありがとうございます!

答えて

1

最高の場所は、AdobeからのActionScript 3リファレンスです:あなたは絶対にコンストラクタの引数によってステージ基準を渡したい場合は、http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/Object.html

+0

である私は、このようなエラー#1009などのランタイムエラーを回避することができるように私は、オブジェクト間の「参照」を探しています:プロパティにアクセスすることはできませんまたはヌルオブジェクト参照のメソッドです。申し訳ありませんが、あなたが私がすでに知っていると言ったことは、私が尋ねたものではありません。 – ILearn

0

:ここhttp://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/index.html

は、オブジェクトの特定の部分でありますどのように配置されているかについては、(何もしない新しいStage()呼び出しを取り除いても)行うことができます。

.stageは表示リストにあるすべての表示オブジェクトで使用できるプロパティです(つまり、addChildまたはaddChildAtで追加されたことを意味します)。

オブジェクトが表示リストに追加される前にオブジェクトの.stageプロパティを参照しようとすると、そのエラーが発生する可能性があります。これは、あなたは「一般的なエラーであり、それは通常のaddEventListener(Event.ADDED_TO_STAGEを使用して、追加されるまで.stageプロパティを参照するために待機しているが扱うことができます...

ので、代わりの

public class MyObject extends Sprite { 
    public function MyObject():void{ 
    this.x = this.stage.stageWidth/2; 
    } 
} 

あなたの例では、この

public class MyObject extends Sprite { 
    public function MyObject():void{ 
    this.addEventListener(Event.ADDED_TO_STAGE, this.addedHandler, false, 0, true); 
    } 
    private function addedHandler(e:Event):void{ 
    this.x = this.stage.stageWidth/2; 
    } 
} 

HTH

0

のようなものを使用dは、新しいステージ(呼び出しん必要はありません)あなたのCustomObject

public var referenceStage:Stage; 

打撃機能は、ここでhttp://troygilbert.com/2007/06/pixel-perfect-collision-detection-in-actionscript3/

可能な解決策がある見つけることができる十分な

です:

  • 代わりに、ステージオブジェクトを渡すので、あなたはまた、主な目的と通話を渡すことができますカスタムオブジェクトのメインオブジェクトの関数
  • メインオブジェクトに、衝突をテストする配列を維持します。
  • ヒットテストを行う関数でインターフェイスを実装する(オブジェクトを拡張する)、メインオブジェクトの配列を再エンコードする(例えば、EntreFrameイベントが発生した)
  • カスタムイベントは、メインオブジェクトと疎結合するソリューションですコンストラクタ内のオブジェクトへの参照を渡す

は、古典的なOOPパターン