ドゥアイネットのプログラマー、湯川が開発日記を綴ります。

CALENDAR
S M T W T F S
    123
45678910
11121314151617
18192021222324
252627282930 
<< November 2018 >>
ARCHIVES
CATEGORIES
FlexPMD
Flex Builderでは、
プロジェクトで参照していない変数や使用していないメソッドを教えてくれません。
Xcodeみたいにすぐに教えてくれるとありがたいので
簡単に見つける方法はないかと調べてみました。

「FlexPMD」というツールが見つかりました。

けっこう前からあったみたいです。
以下のサイトを参考にさせてもらいインストールしました。

Flex PMDをインストール

Flexで使用しているワークスペースとFlexPMDのファイルの置き場所のパスに
半角スペースがあったら動かないというところがありました。
デフォルトだとワークスペースが「マイドキュメント」になっているので注意が必要です。

使ってみたらこんな感じでエラー/注意として表示されました。

画像

↑使っていないプライベート変数がありますよと、エラーを出してくれています。

これは便利です。
| Flex | 13:08 | comments(0) | - |
ワークスペースをビルド中・・
 新しい開発環境にFlex Builder3をインストールしたのですが
プロジェクトを保存すると「ワークスペースをビルド中」が
終わらない状態になってしまいました。


画像
↑これが100%になってもずーっと終わらなくなってしまいました。

いろいろ調べたらFlex Builder3のアップデートをしていませんでした。
adobeのサイトで「Flex Builder 3.0.2アップデータ」をダウンロードして
更新してからプロジェクトを保存したら、うまくいきました。

環境設定は手順を残しとかないと後々めんどいと感じさせられる出来事でした。


| Flex | 19:04 | comments(0) | - |
ラジオボタンをactionscriptだけで書く
 ラジオボタンをFlexで使うときは、
RadioButtonとRadioButtonGroupを使うのですが、
actionscriptだけで実装したときにちょっと使い方が違ったのでメモしておきます。

mxmlの場合は以下のように「groupName」にRadioButtonGroupの「id」を指定してやればラジオボタンがグループ化されます。
<mx:RadioButtonGroup id="cardtype"/>
<mx:RadioButton groupName="cardtype" label="テスト1" />
<mx:RadioButton groupName="cardtype" label="テスト2" />

actionscriptだけで同じようにしようとすると...
var v_group:RadioButtonGroup = new RadioButtonGrou();
var v_rdo1:RadioButton = new RadioButton ();
var v_rdo2:RadioButton = new RadioButton ();

v_group.id = "rdogroup";
v_rdo1.groupName = "rdogroup";
v_rdo2.groupName = "rdogroup";

RadioButtonGroupに「id」プロパティがありません。
そのため上記のように書くとエラーになってしまいます。
mxmlだと設定できるのになぜでしょうか??

調べて以下のようにしたらうまくいきました。
//groupNameではなく、groupにRadioButtonGroup を設定
v_rdo1.group = v_group;
v_rdo2.group = v_group;

| Flex | 15:29 | comments(0) | - |
Labelの文字が切れる
久しぶりに技術ネタです。

Canvas上にLabelを配置するプログラムを作成していたところ
ラベルの文字が途中で切れる現象が発生しました。

画像

p_lbl.validateProperties();を行って
textWidthを取得しているのですがどうしても100pxくらいになってしまいます。

validateNowとかいろいろ試した結果やっとうまくいきました。

p_lbl.width = p_lbl.textWidth + 40;//余白も考慮してtextWidthに+40
this.validateDisplayList(); //ラベルの親のvalidateDisplayList
p_lbl.validateDisplayList();//ラベルのvalidateDisplayList
p_lbl.validateSize();//ラベルのvalidateSize

親のvalidateDisplayListを呼んで、ラベルのvalidateDisplayListを呼んで
さらにラベルのvalidateSizeを呼ぶと・・・

画像

ラベルが切れずに表示されました。
上記3つのうち一つでも呼ばないとうまくいきません。
偶然上記の組み合わせで実行できてよかったなと思います。
もっといい方法ないかなあ。
| Flex | 13:43 | comments(0) | - |
DataGridの指定行を更新する
DataGridを使っていて、中の一行を更新したい場合があります。
データバインディングを使っていない場合は、
dataProviderを再セットして全体を更新していました。

これだと、現在選択している行が保持されず、
一行のために全体を再セットするので効率悪いです。

他の人のコード見ているときに、指定行を再表示する方法を見つけました。

以下の手順です。
var v_view:ICollectionView = _doc.dataGrid.dataProvider as ICollectionView;
v_view.itemUpdated(_doc.dataGrid.dataProvider.getItemAt(更新したい場所のインデックス));

まず、dataProviderをICollectionViewとして取得します。
そのあとにICollectionViewのitemUpdatedを呼び出します。

これで指定行を更新できます。

| Flex | 08:05 | comments(0) | - |
Flash Builer4.5.1
 Flash Builer4.5.1購入しました。
画像

さっそく目玉であるモバイル開発機能を試してみました。

iOS
 確かにつくれます(当たり前ですが)。
 Flexを使ってiOSアプリをつくる感じです。
 iPhone特有のコントロールはありません。
 「ipa」ファイルをつくるときはけっこう時間がかかります。

画像

Android
 実機をつないでのテストはandroid2.2からだったので
 xperiaでは試せませんでした。
 
どちらもPCで実行するときと、実機での動作の違いがあるのかが
気になります。ここは試してみるしかないですね。

一度に両方作成することもできるのですごい便利そうです。
| Flex | 17:46 | comments(0) | - |
不要なimport文の削除
 Flexで不要なimport文を整理する方法です。

Action Scriptコードの「整理中に不要なインポートを削除」に
チェックをつけておけば整理してくれます。
画像

これをしていてもimportが整理されない場合もあります。
そのときは以下の手順で整理できます。

1.対象のAction Scriptファイルを開きます。

2.メニュー「ソース」→「インポートの整理」を実行します。
画像


3.不要なimport文が削除されました。
画像


| Flex | 16:55 | comments(0) | - |
RichTextEditorの初期フォント
 RichTextEditorをカスタムしています。
デフォルトのフォントが「Arial」だったので書き換えたいと思っていろいろ試しました。

まずコンボボックスの内容は、
RichTextEditorのソースファイルの<mx:Array id="fontFamilyArray">を書き換えました。
<mx:Array id="fontFamilyArray">
<!--
    <mx:String>_sans</mx:String>
    <mx:String>_serif</mx:String>
    <mx:String>_typewriter</mx:String>
    <mx:String>Arial</mx:String>
    <mx:String>Courier</mx:String>
    <mx:String>Courier New</mx:String>
    <mx:String>Geneva</mx:String>
    <mx:String>Georgia</mx:String>
    <mx:String>Helvetica</mx:String>
    <mx:String>Times New Roman</mx:String>
    <mx:String>Times</mx:String>
    <mx:String>Verdana</mx:String>
-->
    <mx:String>MS Pゴシック</mx:String>
    <mx:String>MS Gothic</mx:String>
    <mx:String>MS Mincho</mx:String>
    <mx:String>メイリオ</mx:String>
    <mx:String>Arial</mx:String>
    <mx:String>Verdana</mx:String>
</mx:Array>

これで、よく使うフォントを指定できるようになりました。

実行してみると、コンボボックスの初期値を「MS Pゴシック」にしていても
テキストエリアにセットフォーカスすると「Arial」に戻ってしまいます。
画像
テキストエリアの「defaultTextFormat」を取り出したりして変更してもダメでした。
試しにテキストエリアに「fontFamily」を指定したらうまくいきました。

<mx:TextArea id="textArea" height="100%" width="100%" minHeight="0" minWidth="0"
             fontFamily="MS Pゴシック" ←指定したいフォントを指定
| Flex | 17:13 | comments(0) | - |
Flex sdk Hero
 ちょっとしたサンプルプログラムをつくる機会があったので
Flex sdk Heroを使って作成してみました。

サーバーにUPするために作成したプログラムをビルドしてみると・・

swfのサイズがすごく小さくなっていました。
画像

調べてみたところ「動的リンク」という機能がデフォルトになっていて
以前のバージョンより作成されるswfが小さくなるようです。

※「動的リンク」は以前のsdkから使えたそうです。

調べていて少し気になったのは、

「動的リンクを使用してビルドされたアプリケーションの SWF は小さいので、
より速くダウンロードできます。ただし、これらのアプリケーションでは、
必要なクラスだけでなく、すべてのフレームワーククラスがロードされるので、メモリの使用量が増えます」

と記述されていたところです。

デフォルトのコントロールもきれいになっていました。
そろそろFlex4に開発環境を変えようと思います。
| Flex | 16:00 | comments(0) | - |
htmltextについて
Flexのhtmltextを調べました。

画面上に<RichTextEditor>を配置していろいろと試してみました。

太字、文字色変更など簡単にできていい感じです。


イメージも表示できるということで試してみると
表示はできました。

デフォルトのボタンには、イメージのボタンがないので、
ロジックでイメージをセットしました。

this.edit.htmlText += "<p><img src=¥"./inu.gif¥"></p>";


画像

カーソルの位置がへんなところにいったりしてしまいます。
イメージの下にテキストを入れるには、Enterを連打しないといけません。

ヘルプを見ると<img>タグには、完全に対応していないようです。
他にもテーブルに対応していなかったりと
使える機能が限られているのがちょっと残念な感じでした。

文字入力だけなら便利に使えそうです。

| Flex | 16:09 | comments(1) | - |
| 1/14PAGES | >>