0

モバイル(iOS + Android)デスクトップ(OSX + Windows)およびWeb(SWF)にエクスポートするために使用している共通のコードベースがあります

コードの 99% はどこでも互換性があり、そのまま動作します

ただし、動作しないインスタンス (StageText など) がいくつかあります。そのような場合、別のクラス (TextField や TLFTextField など) を使用したいと考えています。論理的には、これで問題ありません...ただし、コンパイルされません

私は次のようなものを持っています-

var myStageText:StageText;
var myRegularText:TextField;

if(isAIR) {
myStageText = new StageText();
} else {
myRegularText = new TextField();
}

エラーチェックをオフにせずに、これをどこでもコンパイルできるようにするにはどうすればよいですか?

4

1 に答える 1

0

ああ、わかりました。ワイルドカード オブジェクト定義を使用し、クラスを名前で設定することでそれができることに気付きました...次のようなものです。

var textInput:*;
var customClass:Class;

if(isAIR) {
customClass = getDefinitionByName("flash.text.StageText") as Class;
textInput = new customClass();
textInput.stage = stage;
} else {
textInput = new TextField();
addChild(textInput
}
于 2013-08-26T13:54:09.353 に答える