- 前ページ
- 次ページ
AIRやFLASHなどを表示するのに不便なので、ブログから自作サイトに移転します。 『N2-Works移転先 』 今後はこちらで更新を行っていきます。 イメージコンバータ第3回です。今回は画像ファイルから取得したバイナリデータを実際に結合してみます。
当然デスクトップ上にファイル出力することになるのでAIR専用のコードであることを断っておきます。
『第2回 』の時にドロップのイベントリスナーにファイル出力関数として定義していましたね。引数はファイルリストからループしながら取得したファイルパスです。
以下にコードを示します。
データを取得する対象ファイルが画像ファイルかどうかを調べるため、一度Loaderクラスを通します。イメージコンバーターはエンドユーザが使用するものではないので、エラーチェックが必要ないなら直接データを取得してもいいと思います。 イベントリスナーにもIOErrorEvent.IO_ERROR時の処理を作成しておくと安心です。 次に実際にファイルデータを取得します。
許可するMime-typeのファイルのみ処理するようにします。拡張子で判断するよりも確実です。わざわざLoaderを使用したのはこのMime-typeを取得するためです。当然ファイルフォーマットを熟知している場合、自分でMime-typeを取得することもできますが、難易度が高いのでおすすめはしません。 Loaderクラスを使用して複数ファイルの処理を行うと、Completeイベントで単純に出力処理を行うわけにはいきません。全ファイルのデータを取得した後に出力処理を行うため、ドロップファイル数と処理済みファイル数を保持しておきます。 出力処理は入力処理と同じくflash.filesystem.*のAPIを使用して下さい。 また上記のコードでは画像データのみを出力していますが、実際は自分で決めたフォーマットを考えましょう。出力した画像連結ファイルをノベルプレーヤー側で取得しないといけませんので。 これでイメージコンバーターの解説を終わります。サウンドコンバーターとSWFコンバーターも基本は同じですが、少しだけ違いがありますので次回はその辺りの解説を行うつもりです。 |
AIRやFLASHなどを表示するのに不便なので、ブログから自作サイトに移転します。 『N2-Works移転先 』 今後はこちらで更新を行っていきます。 イメージコンバーター第2回です。今回はドラッグ&ドロップインターフェースについて解説します。
以前の記事『VistaでのFlashDevelop+Air 』で書いた通り、Vistaではユーザーセキュリティを無効にしないと動作しないので、注意して下さい。
ドラッグ&ドロップは2段階のイベントで構成されます。
1つはドラッグ対象がドロップ対象のオブジェクトにマウスオーバーした時に、一度だけ発生するNativeDragEvent.NATIVE_DRAG_ENTER。
もう1つはドラッグ対象がドロップ対象のオブジェクトにドロップされた時に、一度だけ発生するNativeDragEvent.NATIVE_DRAG_DROPです。
まずはドロップ対象のオブジェクトの作成とイベントリスナーの実装を行います。
ドロップ対象をTextFieldにしているのはエラーメッセージなどを出力するためで、別にSpriteでも構いませんが、stageはこのイベントの発生をコールしないので、画面全体にドラッグ&ドロップイベントを設定したい時は画面全体にインスタンスを配置するしかありません。 では次にNATIVE_DRAG_ENTERイベントリスナの実装を見てみましょう。
ファイルリストの場合、ドロップ対象のインスタンスへのドロップを許可します。
複数ファイル対応するので、クリップボードからファイルリストの内容を配列で受け取ります。これでfile_path_listにはドロップされたファイルのパスが格納されますので、後は全てのパスから画像バイナリを作成すればOKです。 これでドラッグ&ドロップは実装できました。次回はバイナリ格納の方法を解説します。 |