2011年4月5日火曜日

MXMLコンポーネントを作成し、PopUpManager.createPopUpすると AdvancedDataGrid で例外が起きる

MXMLコンポーネントを作成し、PopUpManager.createPopUpすると AdvancedDataGrid で例外が起きてしまいました。
例外は、AdvancedDataGrid にフォーカスを持たせようとすると発生します。

しばらく悩んでいたのですが、ふと継承元のクラスを確認すると、Group になっていました。
これを TitleWindow に修正して、解決。

http://help.adobe.com/ja_JP/FlashPlatform/reference/actionscript/3/spark/components/TitleWindow.html?filter_flex=4.1&filter_flashplayer=10.2&filter_air=2.6

つい、忘れがちになってしまう。。。

2011年2月7日月曜日

mx:Module 側で Alert 表示すると例外が発生してしまう

mx:Module 側で Alert 表示すると例外が発生してしまう。。。

以下のあたりで、、、
var awm:IActiveWindowManager = IActiveWindowManager(sm.getImplementation("mx.managers::IActiveWindow Manager"));

以下を参考にすると、、
http://forums.adobe.com/thread/655749?tstart=-1

MXML アプリケーションのソースにて、以下を記載すると
例外は止まるらしい。。。

import mx.managers.PopUpManager;

private var _dummyPopUpManager:PopUpManager;

Flex 3 にも同様の様な問題があったけど、解決されていないのね、、、

Flash Builder 4 の解説記事って、Flex SDK 4.1 ベースが多いのだけど~ Flex 4.1 SDK の追加インストール

Flash Builder 4 の解説記事って、Flex SDK 4.1 ベースが多いのだけど、、
僕の使っている環境は、Flex SDK 4.0 になっているよ!?
これってどういうこと?

以下の記事を見ると、
Flash Builder は、Flex 4.1 SDK と Flex 3.5 SDK をインストールします。
Flash Builder は、SDK が指定されていないプロジェクトには、Flex 4.1 SDK を使用します。
と、ある。
http://help.adobe.com/ja_JP/flashbuilder/using/WSbde04e3d3e6474c4-fb4ed5124020245e3-7ff8.html

ん~、、Flash Builder 4 の出荷時によるのかな~
しゃーないから、Flex 4.1 SDK を追加インストールしてみることにしました~

まず、上記サイトから Flex 4.1 をダウンロード。


今日の時点では、4.1.0.16076 が最新でした~

使用許諾にチェックして、ZIPファイルをダウンロード。
ダウンロードした ZIP ファイルを解凍しました。

解凍してできたフォルダを 4.1.0 にリネームします。

Flash Builder 4 のインストールフォルダ内にある sdks フォルダに
コピーします。

Flash Builder 4 を起動し、プロジェクトのプロパティを開きます。
Flex SDK の設定をクリックします。

SDK を追加します。

Flex SDK の場所を参照します。

Flash Builder 4 のインストールフォルダ内にある sdks フォルダの
先ほどコピーしたディレクトを選択します。

Flex SDK 名は、フォルダ選択時に自動設定されました。

Flex 4.1 をデフォルト使用するようにしました。


後は、「プロジェクト」メニューから「クリーン」を実行しました~。

たぶん、これでいい!?










Flash Builder 4 で s:TextInput の日本語入力が変!?

s:TextInput で日本語入力しようとすると、
変換候補が画面左上に表示されてしまう。。。

なんで?
と調べてたら、Flash Player のバージョンによるものっぽい。

参考URL
http://www.fxug.net/modules/xhnewbb/viewtopic.php?topic_id=3785

それで、インストールされている Flash のバージョンを調べてみることに。

Flash のバージョンを確認するサイト
http://www.adobe.com/jp/software/flash/about/


んー、、、確かに古そうだ~
で、最新版をインストールしてみることに。

注意が、Flash Builder 4 を使用している場合、通常の Flash Player のダウンロードサイトから
インストールしてしまうと、デバッガが認識しなくなってしまうみたい。
デバッグモードの Flash Player ではありません とダイアログが出てしまう。。。
(私は、やってしまった。。。汗)

Flex 2 の記事だけど、Flash Builder 4 も同じみたい。
http://www.adobe.com/jp/support/flex/ts/documents/758bf58b.htm

そこで、以下のサイトからダウンロードするらしい。
http://www.adobe.com/support/flashplayer/downloads.html


これで、日本語入力時の変換候補が s:TextInput の位置に表示された。
でも、これって、納品時のエンドユーザ環境で要注意だな~


2011年2月6日日曜日

Flex4 で AdvancedDataGrid の itemRenderer を記載すると、「TypeError: Error #1034: 強制型変換に失敗しました」になってしまった

Flex 3 だと以下のように itemRenderer を記載できることができました。

Flex 3 例)

 
  
   
    
     
    
   
  
 


Flex 4 で上記のように記載すると、「TypeError: Error #1034: 強制型変換に失敗しました」
と実行時に例外が起きてしまいました。

以下を参考に修正してみました。
http://www.marietta.co.jp/diary/index.php?action_diary_detail=1&id=232

Flex 4 例)

 
  
   
    
     
      
     
    
   
  
 


DataGrid なら、s:MXDataGridItemRenderer。
AdvancedDataGrid なら、s:MXAdvancedDataGridItemRenderer を間に
入れる必要があるようです。

何かと、Flex 3 の方が良いような気がしてきました~(爆)