2016-04-07 3 views
0

私は私がしたいので、私は別のパッケージを使用する主な理由は、私のFB4.6モバイルアプリケーションのビューを分離することである二つのパッケージ複数のパッケージ、変数の初期化の問題「強制に失敗しました」

import ph.package1.*; 
import ph.package2.*; 

を持っていますさまざまなモバイルおよびタブレットの解像度に対応するための特定のビューを作成します。

基本的に、2人は同じファイル、ファイル名を持っていますが、レイアウトとスタイルだけが異なります。冗長性を防ぐために1つのパッケージから1つのASファイルしか使用していませんでしたが、これまでのところ大丈夫です。ほとんどのページでアプリが動作しています。ファイルのよう

  • 現在のビューは、パッケージ1
  • からである

    var counter:Counter = this["counter"]; 
    

    仮定:

    が今の問題は、私のアクションスクリプトの1つに、これで、私はこのコードを持っていますパッケージ2から呼び出される

  • 両方のパッケージにCounter.mxmlが含まれています

TypeError: Error #1034: Type Coercion failed: cannot convert ph.package1.Counter to ph.package2.Counter....

変数の初期化は、他のパッケージをポイントするように、どのように私はこの問題を解決することができます。

答えて

1

あなたが全体のネームスペースを使用する必要があります。

var counter:ph.package1.Counter = this["counter"]; 

しかし、パッケージが、まだ別のクラス名を与えることをお勧めし、それらの競合を避けるためのものですとにかくながら。あなたが悪夢となるのとまったく同じ名前の20のクラスを持っていたとしましょう。

+0

ニースは、私はそれを行うことができますかわからなかった。まあ、別のパッケージで同じ名前の問題は、パッケージを設定する関数を作成することを考えていた...それを行う方法は考えていない。 –

+0

btw、変数をインスタンス化する際に名前空間全体を使用しても、同じエラー「エラー#1034:型強制は失敗しました」が残っています。 –

+1

他のパッケージの名前空間を使用してください。どちらか一方のパッケージになります。 – BotMaster

関連する問題