0

たとえば、MovieClip を拡張するオブジェクトがある場合、それがある種のカスタム作成されたテキスト フィールド クラス (InputField) であるとします。

InputField コンストラクターには 2 つのパラメーターがあります (placeholderText:String = null、displayAsPassword:Boolean = false)。

ムービー クリップをステージにドラッグすると、作成されますが、パラメータは設定されません。構築時にそれらを設定する方法はありますか?

明確にするために、このムービー クリップをステージにドラッグするだけで、作成してコード ビハインドから addChild() を実行できるようにしたいと考えています。

4

2 に答える 2

1

これが良いアイデアかどうかはわかりませんが、 を拡張するクラスを作成できますInputField。スーパー関数内でコンストラクターのパラメーターを変更できます。

 public function CustomInputField() {
   super("hello", true); 
 }

ただし、init()コンストラクターで現在使用しているものと同じパラメーターを使用して、 public function を使用します。

ところで、あなたは車輪を再発明していますか?入力フィールドは千回作成されます。かなり優れた拡張可能なコンポーネントとフォーム クラスを備えた Templeライブラリを見てください。

于 2012-09-26T22:07:38.987 に答える
1

シンボル自体の内部で変数を初期化できます。変数は、ステージに配置されるとすぐに設定されます。.as ファイルからこれらの変数にアクセスすることもできます。

EDIT:コメントを拡張するには、設定したクラスで2つの変数を宣言するときに、デフォルトで好きな値に設定するだけです。次に例を示します。

class MyInputField
{
  // Will always set following variables to default values, 
  // whether using addChild or dragging symbol onto stage.
  var placeholderText:String = "Enter text here..";
  var displayAsPassword:Boolean = false;

  // If needed, store text field via constructor
  var tf:TextField;

  // Constructor
  function MyInputField()
  {
  }
}
于 2012-09-26T11:42:14.687 に答える