dev.convexstyle.net

Flex アーカイブ

総カロリー数動画計算

del.icio.us hatena bookmark

Apollo Application を実験的に個人で何かしら使ってみたかったので、"3食以外に自分がどれだけ食べるか"をコンセプトに、Apollo Application 内でウェブカメラ経由で動画をサーバに保存し、動画と商品名・各カロリー数・買った場所・日時を追加し総カロリー数を動画で計算していくアプリを作ってみました。メタボリックアプリケーションvidelog。あくまで今回は実験なのでクオリティとかコンセプトとかかなりユルイ感じで作ってます。


videlog.szp.jp
The screenshot of videlog.szp.jp


videlog  apollo application
The screenshot of videlog apollo application

続きを読む "総カロリー数動画計算" »

Remoting with Flex 2.0

del.icio.us hatena bookmark

Flex Builder 2.0 で開発のアプリケーションから AMFPHP などのサーバプログラムに通信する際には、デフォルトでは Remote Object を使用して通信するのがスタンダードで、慣れると特に問題は無いのですが、それよりも便利な Flex framework があるんではないかと検索していたら、s2flex2-components というコンポーネントがあったのでメモ。Remoting Object では少し煩わしかった services-config.xml の様な config.xml の設定やFlex compiler への設定が無くなり、少ない労力と直感的に操作できるのでかなり快適です。

ということで Remote Object と s2flex2-components を使用した Remoting の方法について対比してみたいと思います。

続きを読む "Remoting with Flex 2.0" »

Lightweight Remoting Framework

del.icio.us hatena bookmark

Lightweight Remoting Frameworkdanny patterson さんがリリースした ActionScript 3.0 のみで使用できる Remoting Framework で、サーバへの Remoting 接続が容易にできる。
ActionScript Project しか試してないけど、swc もあるんで、おそらく Flex Project 内でも使用できるではないだろうか。

使い方は凄い簡単で osflash を確認してもらえばすぐに使い方が理解できると思うんですが、この Framework というか Design Pattern を理解すれば、Custom Event とか Event Dispatcher の流れが分かるのでソースは目を通したら結構為になる。メインクラスで管理したい addEventListener で設定する任意のイベント(イベントハンドラ系)をどの様に独自にカスタマイズして dispatch するとかきっちり理解できた。

最新版は直接ブラウザからファイルを保存するか、svn checkout で取得できる。


*彼の著書 "Advanced ActionScript 3 with Design Patterns"

Flickr RSS 解析 in AS 3.0

del.icio.us hatena bookmark

個人の Flickr RSS って便利になりましたね。
最近ふとFlickr の RSS を見たら、以前は M サイズ画像情報のみだったので URL の規則性ですべての画像データ情報を取得していたけど、今はサムネール画像・M サイズ画像・オリジナル画像のパーマリンク、幅、高さがすべて表記されてるんですね。これだと簡単に個人のブログパーツやスライドショーや photogallery くらいはすぐ作れるし、E4X で簡単に XML を解析できるようになったので再利用をかねて個人用に ActionScript 3.0 の解析 class(ParseFlickrXML)を作ってみた。Flickr API を使うならこのクラスがいいと思うけど、自分の RSS を解析するだけだとこれでいいかなと。

ちなみに結構前に作ったので今思うのは、XML の解析用のクラス(ParseFlickrXML)自体が EventDispatcher クラスを extends したら他のイベントクラスは必要なかったし汎用性があると思うけど、作成時はこんなもんだったんで今後直します。

続きを読む "Flickr RSS 解析 in AS 3.0" »

ViewStack

del.icio.us hatena bookmark

自分の様に Flash 開発に慣れている場合、Flash の時間軸の概念に基づいて画面遷移やコンテンツの切り替えを行う。簡単に言えば、ログインは frame1、メインコンテンツは frame2、ログアウトは frame3 にそれぞれ gotoAndStop() しフレームを移動させることによって画面遷移を行う。
しかし、Flex の開発になった途端、結構な Flash をやる方はこの時間軸の考えが無くなり少し混乱することがあるんじゃないか。最近、自分は会社で本格的に AIR アプリ制作と、その他個人で Flex 開発をしていて、少なからずこのポイントで悩んだのでメモ。

色々と検索してみると、同様な記事が FXUG にありました。
記事1
記事2

全く分からなかった時は ActionScript で制御するのか、でも凄い効率悪いし Flex Framework を使っている意味無いしとか感じていましたが、ViewStack ですべてのモヤモヤが解消されました。他にも SWFLoader の方法もありますが、個人的には ViewStack が今回の用途に合っていたのでこっちを使用してみた。

続きを読む "ViewStack" »

unable to bind to property

del.icio.us hatena bookmark

動的なプロパティを持つ Object を集めた ArrayCollection Object を TileList に Bind し、itemRenderer で表示レイアウトをカスタマイズしようとすると、Debug の際に console 画面に下記の様なエラーが。

warning: unable to bind to property 'label' on class 'Object' (class is not an IEventDispatcher)
warning: unable to bind to property 'src' on class 'Object' (class is not an IEventDispatcher)
warning: unable to bind to property 'label' on class 'Object' (class is not an IEventDispatcher)
warning: unable to bind to property 'src' on class 'Object' (class is not an IEventDispatcher)
warning: unable to bind to property 'label' on class 'Object' (class is not an IEventDispatcher)
warning: unable to bind to property 'src' on class 'Object' (class is not an IEventDispatcher)
warning: unable to bind to property 'label' on class 'Object' (class is not an IEventDispatcher)
warning: unable to bind to property 'src' on class 'Object' (class is not an IEventDispatcher)
warning: unable to bind to property 'label' on class 'Object' (class is not an IEventDispatcher)
warning: unable to bind to property 'src' on class 'Object' (class is not an IEventDispatcher)
warning: unable to bind to property 'label' on class 'Object' (class is not an IEventDispatcher)
warning: unable to bind to property 'src' on class 'Object' (class is not an IEventDispatcher)

続きを読む "unable to bind to property" »

Moxie での S2Flex2-components 設定方法

del.icio.us hatena bookmark

Flex Builder Beta 2 "Moxie"での AIR アプリケーション開発で PHP 側のコントローラ(gateway.php)と Remoting でのデータのやり取りを行う AS 側でコントローラ的プログラムを開発しようかなと思ったんで、何を使おうか考えていたのですが、最初の2つ(RemotingObjectLightweight Remoting Framework)は自分なりの理由で回避して
S2Flex2-components を使用することにした。

続きを読む "Moxie での S2Flex2-components 設定方法" »

VideoDisplay では NetStream.seek 機能は実現出来ないのか?

del.icio.us hatena bookmark

アプリケーションサーバ(今回は Red 5 を使用)から streaming 配信で flv ファイルを Flex Framework の VideoDisplay Component に表示しようと思ったが、イベントドリブン的なプログラム内で、任意のタイミングにより FLV を seek させて動画の PlayHead を管理しようと思ったがうまく処理が動かなかった。(上手くいくかもしれないですが、自分ではどうにも出来なかった。)

例えば、下記の様なクリックイベントで flv の streaming 配信させる簡単なスクリプトを組んでみる。これでも streaming 配信は可能なのだが、NetStream.seek の様な PlayHead の移動をさせる機能を持ち得ていないので、最初から再生させるには flv の再生が終了するのを待って再度クリックしないと先頭から再生しない模様。もっとも VideoDisplay の仕様的に、AutoRewind も streaming には対応してないみたいだし、試した限りでは、再生中はクリックしても特に何も変化せず動画は普通に再生し続けた。

▽ MXML ソース


<mx:Script>
<![CDATA[
private function playVideo():void {
var flvname:String = "rtmp://hogehoge.com/app/sample.flv";
local_video.source = flvname;
local_video.play();
}
]]>
</mx:Script>

<mx:VBox>
<mx:VideoDisplay id="local_video" width="320" height="320" />
<mx:Button label="再生" click="playVideo()" />
</mx:VBox>


続きを読む "VideoDisplay では NetStream.seek 機能は実現出来ないのか?" »

独自 showBusyCursor 表示方法

del.icio.us hatena bookmark

RPC 処理や HTTPService 処理中に表示される busy カーソル。
s2flex2-componentsRemoteObject を使用して Flex(AIR)アプリケーションとサーバプログラムを Remoting で連携して何かを処理する場合、showBusyCursor="true" にすることで、サーバプログラムが任意の処理を行っている際にデフォルトのくるくる回るカーソルを表示することができるが、独自のカーソルやプログレスバーを表示したい場合があるので、その独自のカーソルやプログレスバーを表示する方法をメモ。

続きを読む "独自 showBusyCursor 表示方法" »

JUGEM Desktop

del.icio.us hatena bookmark

JUGEM Desktop

Adobe Integrated Runtime Beta 3 上で動作する JUGEM Desktop というアプリケーションの開発に携わり 1/29 にリリースしました。ウェブカメラの動画を記憶ストリームとしてアプリケーションサーバー上に一時的に保存し、ユーザーアクションによって動画をウェブディレクトリに保存し、JUGEM 各ユーザーのブログコンテンツとして使用できるという仕様。今回は最近動画に力を入れている ASK.jp と連携しデコワクを使用するため、ASK で提供された API を使用し、最終的に記憶ストリーム(.flv)を ASK 側に POST する形を取りました。(ローカルの DV ファイルをアップロードするウェブ版は去年末に開発しました。)

JUGEM Desktop の現状の機能自体は Flash Developer や Flex Developer の方にはいたって基本の機能で、すでにウェブ上のアプリケーションでもウェブカメラの動画投稿ができるものを多くみているし、個人的にもウェブでは3度程、記憶ストリームを利用したアプリケーションを仕事や個人ワークで開発しているので、目立って新しいことをしたという訳ではないですが、とにかく、JUGEM というブログサービス(対何十万人)を相手にするための対サービス型のアプリケーション開発は結構シビアで目に見えない部分で苦労しました。後、AIR アプリケーションは"既存のスキルをローカルアプリケーションに使用でき簡単に開発できる"という風に聞いていましたが、やってみると Flex Framework をきっちり理解していないと難しいなと痛感。自分見たくゼロから Flex を始めた方はまずは Flex で詰まりそう。特に、Flash 完結したアプリケーションを AIR 書き出しするために Flex Framework を使用する場合と違い、ユーザーインタラクションがある場合はなおさらかなと思います。MVC 設計を意識し今後の開発での汎用性を意識していたけど、自分のスキルがまだまだです。でも思いました。今まで企業サイト・サービス・個人ワークで目的は違えど何とか新しいクリエイティビティを表現したい!と開発やデザインしてきましたが、AIR アプリケーションの様に、決まった動作を論理的に考えて開発するのも気持ちいい!なあと。一発ギャグ的なアプリケーションもいいけれど、「ウェブライフをより便利に!」って考えて作った方が AIR はより最適かなと思います。例えば、teknision が開発した Finetune Desktop は自分には凄い使い勝手がよく、I-Pod Shuffle 的にいい音楽を偶然探すには最適です。

ということで、使っていただくと分かると思いますが機能的には全くまだまだです。
開発は1人作業なので時間が限られているのですが、引き続き Flex を勉強しながら時間がある限り新しい機能を追加していきます。Flex Beta 3 もまだまだ問題点とかが多いけれど、正式版が出る時に fix されているのを期待したい!


【使用技術】
Flex Builder 3 Beta 3, Flash CS 3 Professional, Flex Component Kit, AIR API, ActionScript 3.0, PHP 4, AMFPHP, ASK API, Smarty, PEAR, MySQL, SQLite, Application server on Linux, Photoshop CS 3


【担当領域】
Flex Builder 3 Beta 3, Flash CS 3 Professional, Flex Component Kit, AIR API, ActionScript 3.0, PHP 4, AMFPHP, ASK API, Smarty, PEAR, MySQL, SQLite, Application server

マルチアプリケーションを1つの AIR アプリケーションで管理

del.icio.us hatena bookmark

AIR アプリケーションで大きく分類して1つの機能のみを保持する場合は、特に意識せずに開発すればいいんですが、ふと、機能が横並び的に拡張して、親アプリケーション(mx:WindowedApplication や mx:Application)ではそのレイアウトのみを管理し、各子クラスがそれぞれ1つのアプリケーションの単位として考えられる場合はどうやるんだろう・・・と思ったので、調査してみた。
要は、各アプリケーションを表すアイコンがズラッと並んでいるだけで、各アイコンをクリックした時点で、各アプリケーションが起動する感じにしたい。

mx:Window 概略図
mx:Window 概略図

続きを読む "マルチアプリケーションを1つの AIR アプリケーションで管理" »

JUGEM Desktop x Flickr

del.icio.us hatena bookmark

社内のブログサービス(JUGEM)で、以前開発していた JUGEM Desktop を 1.2 より 2.0 にアップデートしました。

Flickr 機能を追加し、自分の Flickr スクリーンネームでログインすれば、ブラウザ経由ではなく、AIR アプリケーションから直接ブログに最大8枚までの Flickr 写真とともに記事をエントリーすることができます。インタフェース的にはドラッグ&ドロップで写真を記事に追加する感じです。

写真好きな人とか、Flickr は Englishで JUGEM は日本語で切り分けたい人とか、ブラウザ経由が面倒な人はどうぞ。

詳細:http://jugem.jp/fun/jugemdesktop/

JUGEM Desktop 2.0
JUGEM Desktop 2.0


【使用技術&環境】
Flex Builder 3.0、Flash CS 3 Professional、ActionScript 3.0、AMFPHP 1.9、PHP、PEAR、Smarty、MySQL、Linux、Flickr API、PhotoShop CS 3


【担当領域】
Flash、プログラム、データベース、サーバ、デザイン(AIR アプリ側)
*JUGEM の紹介ページデザイン&コーディングは野原君が担当。色々どーもでした!