より一般的な質問に答えるには、インポートは外部ファイルを含めるための推奨される方法です。私の意見では、include
ステートメントは、何かがうまくいかなかった場合にデバッグが少し難しくなり、通常はコードを読んだり理解したりするのが難しくなるため、他に何もしない場合にのみ使用する必要があります。import
何と何をするかについてのアサフの説明include
は正しい。
そして、あなたが抱えていると思われるより具体的な問題については、おそらく
ブロックtesting.init();
内で正しいことをしようとしているでしょう<script>
-それをメソッドに入れてみてください。import
ステートメントやメンバー宣言 (変数、関数) などはスクリプト ブロックに直接含め、関数内にはこのようなステートメントのみを含める必要があります。
このエラー メッセージが表示されるのは、このオブジェクトのメソッドを呼び出しているときにinit()
まだ作成されていないためです。このステートメントは、MXML ファイルが表すクラスの定義が読み込まれるときに実行されます。あなたが望むのは、このクラスの特定のインスタンスが作成されたときにそれを実行することです.クラスのコンストラクターでそれを呼び出すことでそれを行うことができます(私が知る限り、これはあなたが書いているときは不可能です. MXML を使用するクラスなので、以下をお読みください :) または、たとえばFlexEvent.CREATION_COMPLETE
(またはcreationComplete
MXML タグ属性に関して) イベントのハンドラー関数内 (以下の例を参照)。
次のようなことを試してください:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application
xmlns:mx="http://www.adobe.com/2006/mxml"
width="800" height="600"
creationComplete="creationCompleteHandler();"
>
<mx:Script>
<![CDATA[
import lib.Journal;
public var testing:Journal = new Journal();
private function creationCompleteHandler():void
{
testing.init();
}
]]>
</mx:Script>
</mx:Application>