Flex FAQ


一、AIRと普通のFlex工事の違い.
AIRはCディスク、Dディスクファイルなどのシステム内のリソースにアクセスできますが、通常のFlexエンジニアリングではできません.
二、Flexのデフォルトコード
UTF-8
三、バックグラウンドからFlex文字化けし
request.getParameter("name").getBytes("ISO8859-1"), "utf-8"); またはrequest.charaterset("UTF-8").
四、flexがどのように外部にアクセスされるか.
crossdomain.xml:




サーバとプロジェクトのルートディレクトリに保存します.*代表はすべてアクセス可能です.
crossdomainと名付けられ、flexはデフォルトで読み込みます.
五、あるオブジェクト(コンポーネントを含む)がisを使用できるタイプを判断する
例:if(myButton is Button)
六、Flexイベントメカニズム
1、AS 3イベントフローは三つの段階に分けられる.
1)、キャプチャフェーズ(つまりルートノードからサブノードに流れ、各ノードにListenerが登録されているかどうかを検出する)
2)、目標段階(目標対象本省に登録されたリスナーを刺激する)
3)、泡立ち段階(ターゲットノードからルートノードまで、各ノードにリスナーが登録されているかどうかを検出する)
2つの属性targetとcurrentTargetに関し、targetはイベント送信者であり、currentTargetは検出中のオブジェクトであり、イベントフローが開始されるとイベントのcurrentTarget属性は絶えず変化する.
注意:イベントの登録時に取得フェーズはデフォルトで閉じられます.イベントが取得を開始したかどうかにかかわらず、イベントフローは登録されたリスナーを2つ選択して実行するだけです.
2、EventDispatcherの3つの関数のパラメータについて:
1)、addEventListener( type:String,
listener:Function,
                  useCapture:Boolean = false,
                  priority:int = 0,
                  useWeakReference:Boolean = false)
注意:同じオブジェクトに対して同じイベントのリスニングが複数登録されており、優先度が同じである場合、先に登録されたリスナーが先に実行されます.
2)、removeEventListener( type:String,
listener:Function,
                  useCapture:Boolean = false)
注意:typeパラメータとlistenerパラメータは必須です.これらはaddEventListener()メソッドに必要なパラメータと同じです.useCaptureパラメータもaddEventListener()メソッドのuseCaptureパラメータと同じです.
3)、dispatchEvent(new Event(type:String,
bubbles:Boolean=false,
cancelable:Boolean=false))
Event拡張については、次の点に注意してください.
1)、文字列定数がイベントタイプを表すように定義できます.
2)、コンストラクション関数は親クラスのコンストラクション関数を呼び出す必要があります.super(type,bubbles,cancelable)
3)、拡張Eventは、Eventにカスタム変数を持たせ、データを渡すことができます.
七、Flexでデータオブジェクトをバインドする方法
バインディングの原理はイベントであり、バインディングされたオブジェクトに変更イベントのリスニングが追加され、バインディングされたオブジェクトが変更されると「propertyChange」イベント(デフォルトでは、自分で定義したイベントに変更することもできます)が配布され、他のコンポーネントではpropertyChangeのイベントリスニングがあり、そのイベントをキャプチャするとコンポーネントのプロパティが更新され表示されます.
独自のクラスまたは変数にバインド機能を追加
1)、クラスの前に[Bindable]を使用すると、すべてのプロパティがバインドをサポートしていることを示します.このような場合は、IEventDispatcherインタフェースを実装する必要があります.
2)、変数宣言前または変数getter setter前に[Bindable]を使用できます.getter setterメソッドが同じ名前の場合、どちらかに[Bindable]を与えるのは、両方に[Bindable]を使うのと同じです.
バインド機能を持つプロパティの使用
1)、{myInput.Text}、{myVar 1+myVar 2}などのMXMLの{}方式.
2)、MXMLの方式.双方向にバインドできます.例えばFlashも使えます.net.RegisterClassメソッド
十、ListernerはEventイベントを処理するとき、同期するか非同期か.
答えは同期すべきだ.
テストコードは次のとおりです.

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
				layout="absolute"
				mouseDown="clickFunction();" creationComplete="initApp();">
	<mx:Script>
<![CDATA[
import flash.events.MouseEvent;
private function traceAndDispacth():void{
	dispatchEvent(new MouseEvent("Click")); 
	for(var i:int = 0;i<100;i++){
	trace("trace in trace function");
	}
}
private function eventHandler(event:Event):void{
	for(var i:int = 0;i<100;i++){
	trace("trace in trace eventHandler");
	}
}
private function initApp():void{
	this.addEventListener("Click", eventHandler);
}
private function clickFunction():void{
         traceAndDispacth();
}
		]]>
	</mx:Script>
</mx:Application>

マウスクリック後、trace in trace eventHandlerを出力し、trace in trace functionを出力します.