理由はMXMLで、あなたが書いたもの、実際にハンドラではないということです、ハンドラ内で実行されますものです。 -keep-generated-actionscriptフラグを指定してコンパイルすると(右クリックしてプロジェクトのプロパティを開き、Flexコンパイラを選択し、-keep-generated-actionscriptをAdditionalコンパイラ引数に追加すると)、コンパイラがそのイベント用のハンドラを作成し、本体がmxmlで書いたもので構成されていることを確認します。
あなたが何か持っているのであれば:
click="doSomething();"
をあなたはすでにそれはあなたがaddEventHandlerを使用するときは次のように渡しているメソッド参照ではありません、あなたが実際にそこに命令を与えていることに気づくことができます。二番目のパラメータではありません
this.addEventListener(MouseEvent.CLICK, myComponent_Click);
お知らせ:
private function myComponent_Click(evt : MouseEvent) : void
{
doSomething();
}
そして、どこかのイベントリスナーを追加し、同じファイル内:
次に、あなたのように生成されたファイルに何かを持っているでしょう関数の結果、それは関数参照です。なぜなら、関数呼び出しが存在しないことを示すかっこがあり、私たちの特定の関数はゲッターではないからです。
click="doSomething(event);"
はMXMLイベントの値に書き込みが何であれ:
click="doSomething(); doSomethingElse();"
あなたもあなたの方法にイベントパラメータを渡すことができます。
また、のようなMXMLでより多くのコールを、指定することができます(それが正しい用語であるかどうかはわかりません)は、actionscriptイベントの生成ハンドラの本体になります。
なぜあなたはそれをしたいですか? –
mxmlに引数なしでイベントハンドラを追加することは可能です。 1人の学生が知りたかったので、同じ をactionscriptでどうしてできないのですか? – dharm0us