AS3 tips
いいTipsみつけた。Widnow上でのルート検索に使えそう。
ルートを健作
//rootを検索
var target: DisplayObject = this;
while (target.parent.parent)target = target.parent;
trace(’root:’ + target);
いいTipsみつけた。Widnow上でのルート検索に使えそう。
ルートを健作
//rootを検索
var target: DisplayObject = this;
while (target.parent.parent)target = target.parent;
trace(’root:’ + target);
とりあえず、コンポーネントのスキニング(デザインカスタマイズ)には手を出さないことをお勧め。
・環境構築
http://gihyo.jp/dev/feature/01/flash-sdk/0001?page=1
ここでSDKで環境構築&ビルドをマスター。慣れてきたらRascutを試してみるとよいかも知れない。
・Flex quick start guide for PHP developers
http://www.adobe.com/devnet/flex/articles/php_getstarted.html
英語だが、ここを写経すれば簡単なサーバー、クライアント間のアプリはできると思う。
FlexとPHPのJASON連携
http://www.adobe.com/jp/devnet/flex/articles/flex_php_json.html
あと、最初につまずきやすいところを何点か。
MXML→クラスファイル。
MXMLはコンパイル時にすべてActionScriptに変換される。
そこそこのFlexアプリならActionScriptの知識はあまり要らない。javascriptが分かっていれば分かる。
それよりMXMLに慣れること。
今更ですが AIRのHTMLLoaderです。今更ですが。
早い話が、Webブラウザ。レンダリング機能だけではなくJavaScriptインタプリタとしてもしっかり機能します。
さて、興味本位で、IE、FireFox、AIRのHTMLLoaderぞれぞれで、
確認君(http://www.ugtop.com/spill.shtml)を踏んでみました。
以下、気になったことを…。
・サポート言語(Accept-Language)
送られていないっぽく、情報が空です。
「en-us」ぐらい送ってくれてもいいのに…。
・リファラ(Referer)
:app:/htmlloader_test.swf
デフォルトでは実行中のswfのパスになるようです。
・Cookie(Set-Cookie)
ちゃんとクッキー処理にも対応してますね。
こんなところでしょうか。
ついでにCapabilitiesも確認してみたのですが、なんだか普通でした。
playerTypeが“PlugIn”な点ぐらいですかね。
港で話題のGoogle App Engineですが早速土日にいろいろ調べてみました。
こちらの記事がよく引用されています。
「Google App Engine」の登場とPaaS–Web 2.5がもたらす変化
インフラ整備を泥仕事といったら、泥仕事している人に失礼じゃないか!というのは置いておいて、超ざっくり説明するとAPI込みのレンタルサーバーのようなものでしょうか。
主な機能はこんな具合
・500MBまでのストレージ提供
・500万PV程度の帯域を提供
・言語は今のところPython
・SDKの中に開発サーバーが入っている。
・Pythonで書いたアプリとyaml形式の設定ファイルを同梱しSDKを用いてアップして公開。
・Python2.52の標準ライブラリで書かれているのでPythonのライブラリをアップして使える。
・DBはリレーショナルではない。datastore APIを経由しSQLの代わりにGQLというものを用いて書く。
・Google Accountを利用できる。自分のアプリにGoogle Account APIを利用しログインさせる機能をつけれる。
・ほかのドメインのリソースにアクセスする場合はURL Fetch APIを利用する。sendMailも可能
さて、ここからが本題
このGoogle App Engine対応アプリケーションをFlash,Flexから利用する際のフレームワークが早くも登場。開発者はSWXのAral Balkan氏
・The GAE SWF Project version 1.34
デモは下記
http://gaeswf.appspot.com/examples/initial/flex#/mousewheel
ログインとかしっかり動作していますね。GWはこれをちょっといろいろいじってみたいと思います。では連休後のエントリーをお楽しみに。
degrafa
SVGデータが扱えるグラフィックライブラリ。
http://code.google.com/p/degrafa/
sampleの中のviewsourceでどんな感じか見れます。
非常に興味深い特徴としてはMXMLでコーディングしていく点。
MXMLはActionScriptのクラスをコンポーネントとしてカプセル化する際すばらしく便利なので、もっと普及してほしいですね。
勉強のために casaframework とかlowRAとか眺めたりしてます。
casaframeworkはAS2でもあった便利系ライブラリ。Trick7のTeraさんがブログで紹介してからすごく広まった感ありますね。これは僕の中ではやっつけ仕事のお供に重宝しています。
lowRAはpixLibのAS3版。Util系ライブラリ+FrontContorollerパターンのMVCフレームワーク込みの超絶ライブラリ。
ClassUtilだけは便利すぎるのでAS2.0時代も使わせてもらいました。
どちらもスゴク参考になるのですが、SVNをチェックアウトしたところ目下開発中でちょくちょくコミットされています。casaframeworkにいたっては4/15にcasaframework/collectionパッケージのクラスをほぼ全部削除するなど臨場感満点で楽しめます。
casaframework http://svn.as3.casaframework.org/dev/code/org/casaframework
HTTPServiceをActionScriptで使うと結構オサレな感じでよくね?みたいなエントリを書く予定だったんだけど、なぜかコンパイルエラー。
HTTPServiceのActionScriptでを使う際Responderクラスを使うのが理由っぽい。
AsyncResponderで代用すると直った。
追記
原因はクラスのコンフリクトだった。ルートのMXMLで使うときは下記のようにすると解決。
token.addResponder(new mx.rpc.Responder(handleResult, handleFault));
HTTPServiceとかをASでさらっと使うのって、mxフレームワーク使いこなしてる感がしていいよね。
<?xml version=”1.0″ encoding=”utf-8″?>
<mx:Application xmlns:mx=“http://www.adobe.com/2006/mxml” layout=“absolute” applicationComplete=“init()”>
<mx:Script>
<![CDATA[
import mx.utils.ObjectUtil;
import mx.rpc.AsyncToken;
import mx.rpc.AsyncResponder;
import mx.rpc.http.HTTPService;
private function init():void
{
trace(‘init’);
var httpService:HTTPService = new HTTPService();
httpService.url = “http://blog.widgetown.com/tech”;
httpService.resultFormat = ‘e4x’;
var token:AsyncToken = httpService.send({feed:“rss2″});
//AsyncResponder のところをResponderとすると何故かコンパイルエラー
token.addResponder( new AsyncResponder(
function (result:Object, t:Object):void
{
trace(‘result’);
trace(httpService.lastResult..title.text());
}
,
function(fault:Object, t:Object):void
{
trace(‘fault’);
}
));
}
]]>
</mx:Script>
</mx:Application>