読者です 読者をやめる 読者になる 読者になる

kagamihogeの日記

kagamihogeの日記です。

Flex で Servlet からファイルダウンロード

方々を調べていると S2BlazeDS を使用していてもファイルのアップロード・ダウンロードはフツーに Servlet 作ってやったほうが良いというか、それしか方法がない気がする。なので Flex で Servlet からファイルダウンロードするやり方についてのメモ。そうい…

S2BlazeDS が Detected duplicate HTTP-based FlexSessions てエラーで動かない件の解決方法

三日ぐらい前に Dolteng を落としてきて S2BlazeDS + S2JDBC 試してみるか、とやってみた。そしたら、RemoteObject の呼び出し時に Flex 側はこんな感じのエラーが出て動かなかった。 [FaultEvent fault=[RPC Fault faultString="Detected duplicate HTTP-ba…

Object で Java でいうところの Map#keySet や Map#entrySet をしたい

Object をマップとして使用しているときにキーないし値の一覧を取りたい、といったときにどうやるか。Java の Map#keySet や Map#entrySet とはちょっと違うのだけど、反復処理をしたいという意味合いでは同じなのでこういうタイトルにしました。まぁ備忘録…

Flex でディープリンク

Flex って画面ごとに URL を持つことが出来ないので、ディープリンク的なことは出来ないと思っていた。例えばブックマークにパラメータを積んだ URL を保存しておいてそれを呼び出すと特定の画面に飛べるとか、メールに URL が乗っかっていてそれを押すと特…

ポップアップで開いたウィンドウの子コンポーネントにフォーカスを当てる

ポップアップで何がしかの入力画面を開いて、そこの一番上のコンポーネント(例えばテキストフィールド)などにフォーカスを当てたい、場合のやり方。 <mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" width="400" height="300" creationComplete="creationCompleteHandler(event)"> <mx:Script> </mx:script></mx:titlewindow>

Adobe Flex 3 & AIRではじめるアプリケーション開発

業務アプリケーション開発で Flex やることになったら、とりあえずこの一冊を買うのが良いです。業務アプリで必要最小限な情報が載せられています。気を付ける点は、Flex Builder 前提で書かれてるところぐらいでしょうか。でも、仕事ならたいてい Flex Buil…

イベントのバブリングを利用したカスタムコンポーネント間の連携

イベントのバブリングの基礎学習 - kagamihogeのblog の続き。そもそも、俺がなぜイベントのバブリングについて調べるにいたったかですが。Flex のカスタムコンポーネント間で、データの受け渡しやメソッドの呼び出しをさせるなどして、どうやって連携させる…

DataGrid から List へのドラッグ&ドロップ時に型を保持したままコピー

DataGrid や List など ListBase 系コントロールは、dragEnabled, dropEnabled, (dragMoveEnabled )プロパティを設定してやるだけで、要素のドラッグ&ドロップが可能になる。実際にはドラッグ&ドロップ時に細かい制御を実装することになることが多いだろ…

Flex カスタムコンポーネントの憂鬱

Flex は従来の HTML ベースの Web アプリケーションと比べて表現力に優れます、というのは Adobe などなど RIA 陣営の言い分です。それは本当なのかな、ってとこと、そのウラに潜んでることなどを、ここんとこ Flex に関わってきた人間として感じたことを書…

イベントのバブリングの基礎学習

Flex のイベントにはバブリングという概念がある。これを使うことで子から親コンポーネントへとイベントの発生を伝播させることができる。というわけで実験のために下記のようなコードを実行してみる。 <mx:VBox xmlns:mx="http://www.adobe.com/2006/mxml" width="100%" height="100%" initialize="init()"> <mx:Script> </mx:script></mx:vbox>

Spacer によるコンポーネントの左・右・中央寄せレイアウト

Flex には、Spacer という空白(何も描画しない空間)を挿入する GUI コンポーネントが用意されている。リファレンスに書いてある通り、コンポーネントのレイアウトに役立ちます。コンポーネントの右寄せ・左寄せ・中央寄せのサンプル。 <mx:HBox width="100%" borderStyle="inset"> <mx:Spacer width="100%" /> <mx:Button label="ボタン" /> </mx:HBox> <mx:HBox width="100%" borderStyle="inset"> <mx:Button label="ボタン" /> </mx:button></mx:hbox>

ToolTip のフォントサイズを変更する

var css:CSSStyleDeclaration = StyleManager.getStyleDeclaration("ToolTip"); css.setStyle("fontSize", 20); 詳しいことは StyleManager クラスの使用 を参照。

DataGrid からのドラッグ操作中に表示するオブジェクトを変更

Flex でドラッグ&ドロップを実現する方法は、自分が知る限り 2 通りある。1 つは DragManager を使用して自前でドラッグ&ドロップ操作を作るやり方。ウチのエントリだと http://d.hatena.ne.jp/kagamihoge/20080214/1203002949 がそれに相当する。もう 1 …

をコンポーネントの実装に解決できませんでした。

DataGrid を拡張してごにょごにょ、を試していたときのこと。 package mycomponent { public class ExtDataGrid extends DataGrid { // 省略 } } 拡張内容は省略するとして。mxml の方ではこんな使い方をしたら、タイトルのコンパイルエラーが発生した。 <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" xmlns:mycomponent="mycomponent.*" ...> <mycomponent:ExtDataGrid id="dataGrid"> …</mycomponent:extdatagrid></mx:application>

htmlText のハイパーテキストリンクで TextEvent.LINK イベントを発火

TextField や Text, Lable には htmlText というフィールドが存在する。これはその名の通り、そこに HTML のテキストを突っ込んで上げると、単純なテキスト表示でなくマークアップされたテキストを表示してくれる、というもの。下記の例みたいに a href を指…

Canvas に Sprite や Shape が addChild できない件

原因と対策はこちら FlexでCanvasにSpriteをaddChildできない件について - 午睡二時四十分Canvas というかコンテナ系クラスの addChild は IUIComponent インターフェイスを実装したクラスでなければならない。引数の型は DisplayObject にもかかわらず。罠…

Flex の localToGlobal の使いどころ

flash.display.DisplayObject#localToGlobal(point:Point):Point - Adobe Flex 3.2 リファレンスガイド によると「point オブジェクトを表示オブジェクトの (ローカル) 座標からステージ (グローバル) 座標に変換します。」とかいう機能を提供してくれるこの…

Flex の XML クラスはちょっとでもおかしな XML ドキュメントは例外出す

当然といえば当然な話なのだけど。文法おかしい XML 食わせて例外出るから何事かと思って気付けませんでした。まずは XML ファイルをロードするコードはこんな感じ。 var myReq:URLRequest = new URLRequest(); myReq.url = "file:///C:/a.html"; var urlLoa…

ActionScript の名前空間で多態的な振る舞い

名前空間てのは、大雑把にいえばスコープを司るもので、Java で言うところの package の機構になる。だけど、AS の名前空間は Java のパッケージ機構とはちょっと異質なところが幾つかある。その一つとして、ActionScript では名前空間を変数として持つこと…

ActionScript の String はイミュータブルってことを知っとけばよい?

チマチマと 詳説 ActionScript 3.0 を読み進めているわけですが、ちょっと気になる記述がありました。 元の変数の値が String か Boolean、Number、int、uint のインスタンスである代入では、ActionScript はその値のコピーを作って、そのコピーを代入先の変…

ActionScript で throw する値はなんでもいい

Java の場合、例外で送出するクラスは Throwable の子孫であるところの Error なり Exception のサブクラスを使用する。一方 ActionScript では例外に使用するデータについて型の制限が存在しない。一応、Adobe 的には「Error のサブクラス使おうね」という…

ActionScript のクラス初期化子

詳説 ActionScript 3.0 をダラダラと読んでいます。何かと Java と比べて読んでしまうのだけど、クラス初期化子の書き方が(Java と比べて)ちょっと面白かったので、実験など含めたメモ。で、クラス初期化子の書き方と使い方。まず、クラスを使う側のテキト…

Flex の Date の比較

AS は Java みたいに before とか after みたいな日付比較のメソッドは Date には無いようだ。んじゃどうするか、って話なんだけど…… time プロパティ(中略)複数の Date オブジェクトを比較する場合に、このメソッドを使って特定の時間を表します。 Date#t…

TabNavigator のコンテナで子オブジェクトが null になる

くわしいことはコチラから。俺もちょっとハマってしまったのでメモ。[as3][flex] TabNavigatorでコンテナの中身の子オブジェクトのインス - f_world21の日記とりあえず、どういう現象が起こるか。 <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" creationComplete="init(event)"> <mx:Script> </mx:script></mx:application>

Flex でテーブル駆動方式なコードを書く

入力されたキーで分岐して何か処理させたいとかそんな感じのコードを書きたい場合。swtich で分岐してもいいんだけど、配列使ってやると switch 使わずに書ける。 <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" applicationComplete="init()"> <mx:Script> </mx:script></mx:application>

Flex から絶対パス指定でファイルアップロードはムリっぽい

こんな感じのことはやれるのかな? と思ったわけですよ。Flex から Servlet にファイルアップロード を少し前に書いた。ただ、ファイルの絶対パスを自分で指定してファイルアップロードすることは出来ない。また、ファイルの絶対パスを表示することもできな…

Flex の IMXMLObject で MXML と AS を分離

画面デザインとロジックの分割テクニック | デベロッパーセンター比較的お手軽に MXML と AS を分離するのに IMXMLObject ってのが使えるようだ。 ■imxmlobjecttest.mxml <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" xmlns:local="*"> <local:HogeHelper id="helper" /> <mx:TextInput id="hoge" /> </mx:textinput></local:hogehelper></mx:application>

Flex のデータバインディングのキホン的な使い方

データバインディング - Flex 2このリファレンス見れば済む話なんですが。基本的に 3 通りあったりしてややこしいんですよね…… 中括弧({})を使用するやり方 たぶん一番手軽かつ使用頻度が高い方法。ちょっとしたサンプル書いたり実験したりする場合もコ…

Flex の Dictionary を弱参照で使う

EventDispatcher#addEventListener 使うとき、useWeakReference は基本 true に設定した方が良いようなので、まずは弱参照の使用例についてメモ。結合配列 - Adobe Flex 3 ヘルプDictionary を作るとき、コンストラクタに true 渡すだけ、のハナシなんですが…

Flex の右クリックあるいはコンテキストメニューの出し方

こんなようなもの。flash.ui.ContextMenu - ActionScript 3.0 言語およびコンポーネントリファレンス なるものを使用する。使い方はこんな感じ。といってもリファレンスの例ほぼそのままだけど。 <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" applicationComplete="init()"> <mx:Script> </mx:script></mx:application>

Flex の Menu コンポーネント

こんな感じのアレ。mx.controls.Menu - ActionScript 3.0 言語およびコンポーネントリファレンス を見ながら。どうやって使うのか良くわからず意外と苦労した……まず、データプロバイダに XML を使うやり方。 <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical"> <mx:Script> </mx:script></mx:application>

Flex の itemRenderer - 初級

Flexでリストの中にチェックボックスや画像を表示!? (1/3) - @IT を見ながら。とりあえずカンタンなところから。DataGrid の中に TextInput, ComboBox を出すのはこんな感じ。 <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical"> <mx:Script> </mx:script></mx:application>

Flex から Servlet にファイルアップロード

むかし Flex 勉強に S2BlazeDS でファイルアップロード・ダウンロード を書いた。けど、Flex というか Flash からは基本的に*1ローカルファイル見れないんで、このテでアップロードは使えない。じゃどうするかってハナシですが、タブン今までのようにフツー…

コンポーネントの境界を越えて描画し続けてしまうと

こうなる。ねーよwwwwCanvas に何か描画するときに、終了条件付けずに実行したらこうなってしまった。まさか突き抜けてしまうとは……

Flex の Object と Dictionary のちがい

Flex というか ActionScript 3.0 の話なんだけど。そろそろ ActionScript のタグ作った方がいいかなぁ。ActionScript で Java でいうところの Map というか、連想配列というか、まぁそういうのを作るときは Object を使うらしいことを最近知った。こんな感じ…

Flex の DataGrid のツールチップの出し方

Flex - List コントロール を参考にしつつ。 <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"> <mx:Script> </mx:script></mx:application>

Flex の Mixin メタタグの使い方のメモ

Flex にはメタタグというものがある。Flex 3 - メタデータタグ に一覧がある。正確にはメタタグじゃなくてメタデータタグというのかね? でもまぁメタタグって言い方のほうが良く見かける気がするのでまぁいいや。でもって Mixin というメタタグはここの一覧…

setter の書き方ミスってスタックオーバーフロー

スタックオーバーフローというより凡ミスなんですが。 private var b:int; public function set valueB(b:int):void { this.valueB = b;//setter から setter を呼んでいる! } 延々と setter メソッド再帰呼び出し状態に陥ってしまいましたとさ……set キーワ…

Flex のマニフェストファイル

Flex 3 - マニフェストファイルについてFlex のライブラリ swc を作って、それを参照するときのエイリアスを作るためのもののようだ。以下は Flex Builder でやる場合のメモ。とりあえずテキトーなクラスを作る。折角なので TextArea を継承してみる。 packa…

Flex の ResourceBundle のメモ

自分用のメモ。Adobe Flex 3 ヘルプ - Flex アプリケーションのローカライズ とか色々。 Flex 3 では非推奨になっている ResourceBundle を直接見るやり方 mx.resources.ResourceBundle そのものが非推奨になってるんじゃなくて、ResourceBundle#getString(k…

ActionScript の Function 型の勉強 - 2

ActionScript の Function 型の勉強 - kagamihogeのblogActionScript はさすが ECMAScript の系譜を引いてるからなのかなんなのか、関数の扱い方が素晴らしくダイナミック。元々 Java 屋さんな俺からするとちょっとドン引きレベルにパワフルです。 var mo:Ob…

Flex の XML と flash.utils.describeType

ActionScript 3.0 には XML リテラルなるものがあり、ソースコード中にいきなり XML の定義が出来てしまう。 var employees:XML = <employees> <employee ssn="123-123-1234"> <name first="John" last="Doe"/> <address> <street>11 Main St.</street> <city>San Francisco</city> <state>CA</state> <zip>98765</zip> </address> </employee> </employees>

FLASH OOP for ActionScript 3.0

OOP と書名にあるけど OOP の本とはちょっと違います。OOP そのものの本ではなくて、OOP を使う側の本です。ActionScript は 3.0 になってから OOP の概念をふんだんに盛り込み始めたため、2.0 以前とは色々な部分が変化している。OOP そのものでなく、OOP …

ActionScript のゼロパディング

タイトルとぜんぜん関係ない書き出しで申し訳ないんですが、美人時計の画像ファイルが欲しい - Yamashiro0217の日記 を見ていて Flex の画像ロードってどうやったけなぁ……とか思って、時刻指定して画像表示するコードを書いてました。実行イメージはこんな感…

あたし状態遷移図を 10 分くらいでゴリ押し実装

ネタ元:「あたし状態遷移図」、あるいは「あたし約5.2MB」 - とある理系男子の書斎には、どうしても小説が少ない。っていうか無い。 - ファック文芸部実行の様子 <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" applicationComplete="complete()"> <mx:Script> </mx:script></mx:application>

yui-frameworks でライフゲームつくって思ったこととか

yui-frameworks でライフゲームつくったというかつくりなおしたというか。ソースの一部とコレ作ることで得られた知見などについてテキトーにメモ。 XXXView あまり深く突っ込まれると困る実行画面の様子。mxml のソースは省略。 XXXAction public class Life…

知っ得 納得 Webフレームワーク 第一回に行ってきた。

11/5 に 株式会社フルネス で行われた勉強会に行ってきました。懇親会も行きたかったんだけど諸事情により行けずじまい…… S2Flex2 - AMF3 Gateway with DI Container id:c9katayama によるトーク。S2Flex2 とは? クライアント側の Flex からサーバ側の Seas…

yui-frameworks 使う時の初期化処理書くところ

Flex/AIR開発でデザイナとの協業を楽にする「yui」(1/3) - @IT や yuiを使ったFlexアプリを作って、便利さを体感しよう(1/4) - @IT にも書いてあるんだけど、まぁ一応メモ。 public class HogeAction { public function onAssembleCompleteHandler( ev…

ActionScript の Function 型の勉強

Java 厨の俺にとって、引数に関数を渡す、というやり方は斬新な感覚だったのでその辺りについてメモするエントリ。 Function 型の話しに入る前に。Array (Flex 3) のリファレンス見たとき、Java 厨的には Array#iterator() みたいなメソッドが無いのにちょっ…

yui-frameworks の感触とかその辺

yui-frameworks の Beta 版さわってみた - kagamihogeのblog のコメ欄で「データバインディングどうしてる?」を聞かれたのと、その他ちょいちょいいじってみての、yui-frameworks 使った場合の設計・実装に対する所感などについて書く。最初に注意書きしと…