既にFlash(AS3)のステージにあるテキストフィールドを拡張する方法は?

StackOverflow https://stackoverflow.com/questions/1617469

  •  06-07-2019
  •  | 
  •  

質問

Flash(AS3)のステージで既に用意されているTextFieldを拡張する方法を探しています。 このようなもの:

public class ChildTextField extends TextField 
{
    //code for childTextField comes here    
}

ステージ上にインスタンス名「thetextfield」のTextFieldを配置しました。次に、このテキストフィールドがChildTextField型であることをフラッシュに伝えたいと思います。したがって、私のドキュメントクラスでは、そのテキストフィールドをChildTextFieldとして宣言します。

public class DocumentClass extends Sprite()
{
    public var thetextfield : ChildTextField;
}

これにより、タイプ強制失敗エラーがスローされます。 ライブラリシンボルでできるように、Flash IDEのテキストフィールドに使用されるクラスを変更することは可能ですか?

役に立ちましたか?

解決

怖くない。拡張テキストフィールドクラスを追加する場合は、ActionScriptを使用する必要があります。

編集:ハックの方法があります。ソース: http://board.flashkit.com/board/ archive / index.php / t-738887.html

  

実際、私はこの正確な状況に遭遇しました   前の問題。私の場合、私は   でテキストフィールドを作成しようとしています   他のいくつかの他の動作   使用する非コーダーアーティスト。私は伝えるだろう   あなたはすべて私のオリジナルのソリューションです   as3、しかし致命的な欠陥があり、私の   現在のソリューションは、   as3とjsflの組み合わせ。

     

すべてのas3ソリューションは、   2つのこと:最初に、   ビルド時ではなくランタイム。それ   小さいが実際の部分があることを意味します   映画のない時間の   正しく初期化されました。第二に、それは   複数ある場合はうまくプレイできません   映画のフレーム。基本的な考え方は   あなたがしたいTextFieldsを検出する   変更し、それらを置き換えるものを構築する   で、ステージでそれらを交換します。君は   これを行うには   TextField、またはクラスを構築する   TextFieldを含み、   それへのインターフェース。あなたがいるとしましょう   最初にします。にコンストラクタを追加します   すべてをコピーするSmartTextField   関心のあるフィールド:

public function SmartTextField(TextField tf)
{
this.text = tf.text; //continue with copy of anything relevant. 
}
  

メインムービーには、   TextFieldsを検出して置換します   置き換えたい

 var toreplace:Array = findTextFields(); 
 var tf:TextField;
 var stf:SmartTextField; 
 var where:int;
 for (int i = 0; i < toreplace.length;i++)
 { tf = TextField(toreplace[i]);
   stf = new SmartTextField(tf); 
   where = getChildIndex(tf); 
    addChildAt(stf,where); 
    removeChild(tf); 
 }
  

これは、ポイントを除いて、正常に機能します   上記。

     

JSFLソリューションは少し複雑すぎます   詳細に調べますが、ここにあります   基本。ラップするas3クラスがある   あなたが新しい行動を持つテキストフィールド   欲しいです。 jsflスクリプトを書きます   選択したアイテムを繰り返し処理し、   テキストフィールドの場合、に変換します   新しいクラスのベースクラスを持つシンボル   ラッパークラス。これには利点があります   それは著者の時間に起こり、そして   位置、インスタンス名、   他のものは自動的に   保存されます。欠点がある   jsflには多くの迷惑なものがあります   対処する癖。

     

編集:もちろん、これが   単一の映画、あなたは先を行くことができます   jsflコンバータースクリプト   手で。シンボルに変換-&gt;ラッパー   ベースクラス。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top