カテゴリー別アーカイブ: Flash Builder

ドラッグドロップでハマる

ドラッグ&ドロップが容易に出来るのがFLEXの良いところなのだが、何故か、ドロップ出来る時と出来ない時がある。 処理に問題があるのか悩んだが、結局、ドラッグをスタートしたリストを表示しているパネルを自由に移動(ドラッグ)出来るようにしていたのだが、相手先のリストと距離が近い場合、ドラッグ中のアイテムが両方に重なった場合に、ドラッグ元のリストでドロップ禁止しているとその影響を受けるらしい。 つまり、アイテムの項目が長いと両方にかかってる場合が発生して、ドロップできない状態となっていた様だ。 色々考えたが、結局、ドラッグスタートのイベントで、ドラッグ元のパネルを小さくするエフェクトを入れて、ドラッグ元へ掛からない様にした。 ドロップ後に元のサイズへ戻すことで、結果的にドラッグ中のウインドウの可視範囲も広がると言う一石二鳥となった。

カテゴリー: Flash Builder, 仕事 | コメントは受け付けていません。

明日は何日?

FlexなどのACTIONSCRIPT系の言語をやってると意外な事が出来ない事に困惑する。 例えば、今日から一週間分のカレンダーを作ると言う時、今日の日付はわかるが、明日は、二日後は何日?と言うのをすぐに計算する関数が無い。 Adobeの日付に関するページを読むと方法が書いてあった。 http://help.adobe.com/ja_JP/ActionScript/3.0_ProgrammingAS3/WS5b3ccc516d4fbf351e63e3d118a9b90204-7f10.html 結局、こういう定数を一旦設定してそれを加算して利用するらしい。  public static const millisecondsPerDay:int = 1000 * 60 * 60 * 24; 一週間のカレンダーを作成するなら var day:Array = new Array(“日”,”月”,”火”,”水”,”木”,”金”,”土”);   var today:Date;  for(var c:int=0;c<7;c++) {     today = new Date();     today = new Date(today.getTime() + (c * … 続きを読む

カテゴリー: Flash Builder, 仕事 | コメントは受け付けていません。

Flexとオブジェクト

Flexの様な便利なツールで開発をしていると、つい基本的な事を忘れてしまう。 先日、ArrayCollectionを参照するAdvancedDataGridを扱っていて、ArrayCollectionの値を更新して反映させると言う事をやっていた。 AdvancedDataGridの側ではAdvancedDataGridRendererProviderのrendererに対して、ClassFactoryを使って独自のDataRendererを当てると言う微妙に複雑なことをやっていたのだが、更新した筈なのに、更新する都度何故か同じデータで全てが更新されてしまう。 これは開発中のシステムなので、全く違う例えで説明するが、例えば、既にAさんの出身地に福岡県と言う情報がある場合、Bさんの情報に対して佐賀県という出身地を追加して更新すると言う感じだ。 この時に、Bさんは当然佐賀県となるのだが、Aさんも佐賀県と設定されてしまっている。 更新対象の検索に関する部分を調べたがバグは無さそうなので、DataRenderer辺りにバグがあるのかと思い調べていたがこちらもバグらしいものは無くハマっていた。 結局、原因は、追加しているオブジェクトにあった。 実は追加する情報は出身地だけではなく他の情報、好きな食べ物、生年月日等いくつかあって、これをオブジェクトとして1固まりの情報として追加していたのだが、このオブジェクトを作るときにうっかり new Object()をやって初期化していなかったのだ。 内容はAさんBさんの都度変更していても、元のオブジェクト(箱)が同じなので、後から変更される情報に全て変更されてしまう筈だ。 このオブジェクトは他からも参照するので、宣言のスコープを広くしていたが、宣言の時にnew Object()はしていても、内容を変更する時にはやってなかった。 僕はてっきり、Aさんの情報を保存するオブジェクトとBさんの情報を保存するオブジェクトはそれぞれ異なる宣言をしている(異なる箱を確保している)ので、単にそこにデータを追加しても、その時点で縁が切れる(出身地などの情報がコピーされて、その箱に入る)絶対アドレスだと思っていたが、そうでは無く、最終的に追加する為のオブジェクトを参照している相対アドレスだと言う事を知らなかった。 つまり、出身地などの情報が入る箱は一つで、Aさんの情報を保存している箱の中にはその箱の場所だけが入っていたと言う事だ。 それなら、参照している情報は1つしか無いので参照先も情報も変わる筈だ。 こんな事はCなんかやっていた時は常に意識していた事なのだが、今更初歩的なバグで恥ずかしい限りだった。

カテゴリー: Flash Builder, 仕事 | コメントは受け付けていません。

Flash Bulider 4.5

先日、このプレリリース版であるBURRITOのライセンス期限が切れて起動しなくなった。 恐らく、製品版がリリースされたからであろう。 Adobe FlexベースのWEBアプリケーション開発と言う看板を上げている以上、製品のリリースには付いていかないといけないので、4.0からアップグレードした。 まだ、4.0で製作したアプリの移設とかしかやってないが、これで、本格的にAndroid端末アプリとその他の製品制作の一元管理ができそうだ。

カテゴリー: Flash Builder, 仕事 | コメントは受け付けていません。