Flash Builder 4 -> Flex 3 から Flex 4 への移植

Posted by muchag | Flash Builder 4 |
初回投稿:2010-07-22 (木) 15:14:50 | 最終更新:2011-01-24 (月) 12:16:20

様々なサイトを参考にしながら FB4 を習得しているが
参考サイトはまだまだ Flex 3 のものが多い。

そこで、参考サイトのコードを FB4 用に移植する際のポイントを列挙。

手探りなので大分怪しい が、直感で書き綴っていく。

 

必須項目
CSS
CSS セレクター “Application” 内の型 “Application” は、名前空間で修飾されている必要があります。 Flex の問題
タイプがアプリケーションで使用されていないので、CSS タイプセレクター ‘Application’ は処理されませんでした。 Flex の問題

 
タイプセレクター(コンポーネント丸ごと設定)の場合は、
Flex 4 では mxs などの名前空間を付けるルールになった。

名前空間を付けるだけでは動かないので、名前空間の宣言も加えて以下のように修正。

<移植前>

  1. Application { }

<移植後>

  1. @namespace s "library://ns.adobe.com/flex/spark";
  2. @namespace mx "library://ns.adobe.com/flex/mx";
  3.  
  4. mx|Application { }
  5.  
  6. または
  7.  
  8. s|Application { }

 

Flex 4 へ移植
MXML
コンポーネント

Spark コンポーネントで代替する場合は、以下のように。

<移植前>
[mxml]


[/mxml]

<移植後>
[mxml]


[/mxml]  

Application タグ

名前空間の指定が変更になっている。

<移植前>
[mxml][/mxml]

<移植後>
[mxml]
[/mxml]  

fx プレフィクス

Flex 4 では、Spark コンポーネント ということで、プレフィクス s を用いることが多いが
以下のような定義系では fx というプレフィクスを用いる。
[mxml]
[/mxml]  

ActionScript ビルトインクラス
[mxml]

[/mxml]  

AS
child と element

全部を調べたわけではないが、メソッド名の変更がある。

<移植前>
[mxml]

[/mxml] これを AS で実現しようとすると以下のようになる。

  1. var myPanel:Panel = new Panel;
  2. var myButton:Button = new Button;
  3. myPanel.addChild(myButton);

 
ところが Spark コンポーネントのときはこれが異なる。

<移植後>
[mxml]

[/mxml] これを AS で実現しようとすると以下のようになる。

  1. var myPanel:Panel = new Panel;
  2. var myButton:Button = new Button;
  3. myPanel.addElement(myButton);

このように addChild メソッドが addElement メソッドに変更になっている。
他でも child 系が element 系になっているようなのでチェック。
 
<参考元>
Shigeru Nakagaki:Flex 4 : setChildIndex じゃなくて、setElementIndex

Posted by muchag | Flash Builder 4 |
初回投稿:2010-07-22 (木) 15:14:50 | 最終更新:2011-01-24 (月) 12:16:20

2 Comments »

  1. コメント by Mezamasy — 2011/1/8 土曜日 @ 15:31:11

    Flash Builder 4 で動的にボタンを作る(表示する)ことができず、世界中の(古めの)解説を1時間以上ぐぐったあげく「actionscript3 “new Button” mxml/2009」でググってここに飛んで来ました。曰く「このように addChild メソッドが addElement メソッドに変更になっている。」なるほど!。助かりました。

  2. コメント by muchag — 2011/1/14 金曜日 @ 16:42:13

    参考になって何よりです♪

RSS feed for comments on this post. TrackBack URI

Leave a comment