- Tweener処理後に対象オブジェクトを削除 [otsuka]
- Tweener処理後に対象オブジェクトを削除 [+39]
- Tweener処理後に対象オブジェクトを削除 [otsuka]
- Tweener処理後に対象オブジェクトを削除 [tksh]
- AS3のコレクションライブラリ [otsuka]
- AS3のコレクションライブラリ [yossy@beinteractive]
- Flash Media Server 3 [otsuka]
- Flash Media Server 3 [tohsaki]
- Flash Media Server 3 [otsuka]
- Flash Media Server 3 []
- FlashでHTTPステータス [otsuka]
- FlashでHTTPステータス [tohsaki]
- 覚え方 [otsuka]
- 覚え方 [michi]
- Custom Component for FlashCS3 [otsuka]
- Custom Component for FlashCS3 [arkw]
- Custom Component for FlashCS3 [otsuka]
- Custom Component for FlashCS3 [オキ]
- ozacc-mail library for AS3 1.0-alpha [otsuka]
- ozacc-mail library for AS3 1.0-alpha [suama]
- GUIのmxmlc [otsuka]
- GUIのmxmlc [Tanabe]
- ozacc-mail library for AS3 もうすぐ [otsuka]
- ozacc-mail library for AS3 もうすぐ [ff]
- AS3 メタデータの使い方が分からない [otsuka]
- AS3 メタデータの使い方が分からない [arkw]
- AS3 メールヘッダをエンコード []
- OML for AS3 [takai]
- OML for AS3 [otsuka]
- OML for AS3 [takai]
- FlashVars変数がSWFに渡らない [otsuka]
- FlashVars変数がSWFに渡らない [kuriyama]
- プログレッシブJPEG [otsuka]
- プログレッシブJPEG [MIZOMIZO]
- Flash Player 8 ベータ版 [otsuka]
- Flash Player 8 ベータ版 [ojos]
- Maven Repo Search | Flash Edition 1.0-SNAPSHOT [otsuka]
- Maven Repo Search | Flash Edition 1.0-SNAPSHOT [takai]
- Maven Repo Search | Flash Edition 1.0-SNAPSHOT [otsuka]
- Maven Repo Search | Flash Edition 1.0-SNAPSHOT [takai]
- データバインディング [dragon3]
- データバインディング [otsuka]
- データバインディング [dragon3]
- Central SDKをインストールしたら [otsuka]
- Central SDKをインストールしたら [Taka]
- #includeで読み込む外部asのコメント [mizomizo]
- #includeで読み込む外部asのコメント [otsuka]
- #includeで読み込む外部asのコメント [mizomizo]
- クロージャ [ま2]
- Remotingな仕事 [ほそ]
- Remotingな仕事 [otsuka]
- Remotingな仕事 [ほそ]
- 右クリックを無効に [FLASH?]
- OpenAMF 1.0 RC5 改 [otsuka]
- OpenAMF 1.0 RC5 改 [hoso]
- EAでFlashのクラス図 [takeo]
- EAでFlashのクラス図 [ぐっち]
- EAでFlashのクラス図 [takeo]
- EAでFlashのクラス図 [otsuka]
- EAでFlashのクラス図 [takeo]
- AS2 自分用FAQ #4 [chiitake]
- AS2Docが欲しい [otsuka]
- AS2Docが欲しい [otsuka]
- AS2Docが欲しい [TN]
- 本当にリッチになれるのか? [otsuka]
- Programming Flash MX [otsuka]
- Programming Flash MX [chiitake]
- Flash Remoting勉強開始 [otsuka]
- Flash Remoting勉強開始 [higa]
- ActionScript 2.0 [otsuka]
2008年11月15日
Flash | Flash CS4 日本語ドキュメント
Adobe Flash CS4 Professional * Flash CS4 Professional
先日までFlash CS4のβ版からヘルプを呼び出しても認証が掛かってて見られなかったけど、今日誤ってヘルプを選択したらアクセスできるようになっていた。
あー、公式だとこういう風に訳すのかと思うところが多々。原稿はもうとっくに提出しているので、今更直したくないけど。
2008年11月09日
Flash | AS3でRemote Shared Object
SharedObject - ActionScript 3.0 言語およびコンポーネントリファレンスガイドsetDirty() メソッド
SharedObject.setProperty() メソッドは、setDirty() を実装します。ほとんどの場合、たとえばプロパティの値がストリングや数値のようなプリミティブ型のときは、setProperty() を呼び出すことが可能で、setDirty() を呼び出す必要はありません。ただし、プロパティの値が独自のプロパティを持つオブジェクトである場合は、setDirty() を呼び出してオブジェクト内の値が変更された日時を示します。
もう、なんで?というAS仕様に悩むこと2時間。
FMSのRemote Shared Objectを使うプログラムを初めてAS3で書いてたんだけど、AS側から
so.data['key'].name = value;と、RSOのデータを変更してもサーバにこの変更が伝わらない。
オレ様のコードは正しいはずなのに…と、この辺りの書き方をいろいろアレンジしてみたが直らない。で、ドキュメントを読み直していたら、AS2の時とは挙動が変わってた。
新しくsetProperty() や setDirty() メソッドが追加されており、RSOのプロパティ値を変更する場合は基本的には setProperty() メソッドを使うようだ。データがObjectやArrayの場合でその中身だけ変更した場合とかは、setDirty() を明示的に呼び出す必要がある。なので、上記のコードは
so.data['key'].name = value;
so.setDirty('key');とすることで、サーバまで変更が伝わるようになった。
因みに、上で引用しているドキュメントの「setDirty() を呼び出してオブジェクト内の値が変更された日時を示します。」の、最後の「変更された日時を示します」は誤訳っぽい印象。
2008年10月15日
Flash | Flash Playerダウンロードページ
Adobe Flash Player - Downloads
いつもこのページになかなか辿り着けないので今日はメモしておく。
Adobe Flash Player 10 Update for Flash CS4 ProfessionalにDebug版のFlash Player 10も含まれている。
2008年09月26日
Flash | dango
サーバサイドではRubyを使ったFlashとのリアルタイム通信フレームワーク。昨日のFlex勉強会のプレゼンで知りました。
通信はポーリングとかではなくストリーミングで、データフォーマットはJSONとのこと。
データフォーマットはAMF(RubyAMF)を使てみては、とAdobeの外国人から突っ込まれていたけど、確かにフォーマットをJSONとAMFとで選択できるといいかも。
一サーバで100接続くらいはさばけるらしい。複数台でスケールアウトできる仕組みがあれば実用性が高まりそう。
BlazeDSだとFlashから使えないので(何か方法はありそうだけど)、Flashからでも使えるdangoは今後期待大。FMSクローンになれば言うことナシ。
2008年09月22日
Flash | AIRアプリ向けコード署名証明書
グローバルサイン、Adobe AIR向けコードサイニング証明書の提供を開始 | ネット | マイコミジャーナル
先日、あるプロジェクトでも話題に上ったAIRアプリの証明書。価格帯的にはThawteとほぼ同じだけど、国内で対応してもらえるのはありがたい。
数ヶ月前までは大手企業のAIRアプリでもCA発行の証明書による署名はされてないものが多かったけど、最近はきちんと署名されたアプリが増えてきている様子。
基本的に制作会社側ではクライアント企業の電子証明書は取得できないので、AIRアプリの制作を行う場合は、早めにこの点について確認しておく必要がある。
2008年06月05日
Flash | Flex Builder 3 with Java 6
スタンドアロンのFlex Builder 3をインストールして、そこでプラグイン「Explore it」を使おうと思ったらインストールは出来たけど、動作しなかった。
調べてみると、Flex Builder 3付属のJREはJava 5だった。てっきりもうJava 6が使われてると思い込んでいた。
Flex Builder 3が使うJREをJava 6のものに変えようと前にも書いたやり方を試してみたところ、うまくいかずJava 5が使われたままだった。
Flex Builder 3のショートカットのリンク先を次のように変えるとOKだった。Explore itも動作するようになった。
"C:\Program Files\Adobe\Flex Builder 3\FlexBuilder.exe" -vm "C:\Program Files\Java\jdk1.6.0_05\jre\bin\javaw.exe"
2008年05月15日
Flash | Flash Player 10
Adobe Labs - Flash Player 10 Beta Release Notes
大分大幅な機能強化だ。
File Reference runtime accessは待望の機能。AIRの必要性がひとつ減った感じ。
Dynamic Sound Generationも面白そう。
2008年05月06日
Flash | AMF仕様書の日本語版
Developer Documentation - BlazeDS - Confluence
いつの間にかAMF仕様書の日本語版が出ていた。が、AMF 3の方は英語のままだ。
Django AMFの開発もしばらくやってないのでそろそろ再開したいが…
忙しいときはやりたいことがいっぱいあるんだけど、いざ時間ができるとダラダラしてしまい何もやらない病はどうしたらいいのだろうか。
とりあえず今月の目標としては、ストリッパーズに野球部(軟式)を創設する。
2008年03月26日
Flash | メタデータタグ
via 中垣 茂 ( Shigeru Nakagaki ) | ブログ ( Flex, AIR, ColdFusion ) | メモ : Flex 3 メタデータ一覧
ちゃんとドキュメントにまとめられてたんですね。いつもタグに指定できるプロパティが分からなくなってしまって調べるのに苦労していたので、これは助かる。
でもまだ他にもメタデータタグはあるよね? ぱっと思いつくのは [SWF] タグ。
Flash | PureRubyなRTMPサーバ
PureRubyなRTMP(MP4/H.264)サーバをオープンソース化しました - takumalog
これはすごいですね。このままRuby製FMSクローンまで育てて欲しいです。
2008年03月20日
Flash | Tweener処理後に対象オブジェクトを削除
Tweener.addTween(aDisplayObject, {alpha:0, onComplete:deleteObject});
function deleteObject():void {
this.removeChild(aDisplayObject);
}上のコードのように、あるDisplayObjectをフェードアウトした後に、それが属しているDisplayObjectContainer(上の場合this)から削除したいのだけど、上のコードだとdeleteObject()が呼ばれた時ににはTweenerがまだaDisplayObjectを何かしてるから削除できないよとエラーになってしまう。
こういうことをしたい場合、どうすればいいのでしょうか? Tweenerに詳しい方、教えてくださいまし。
お礼にSMEの3/30のライブチケットを差し上げます。
2008年03月13日
Flash | AS3のコレクションライブラリ
Javaで言うところのSortedMapのAS3実装が欲しくて探してみたんだけど、このVegasというフレームワークしか見つからなかった。確かにライブラリというよりはフレームワーク。巨大すぎて使う気がそがれる。
必要なクラスだけ抽出して…と思ったけど、継承が深いので面倒くさそう。
今回は自分で実装するとしても、Apache CommonsのCollectionUtilsレベルのコレクションライブラリがあると便利な気がする。標準のArrayとObjectだけでは何かと不便。
Spark projectで作ってくれないかなあ。
2008年03月05日
Flash | ライブラリのアセットはリフレクションで
今取り組んでいる案件は訳あってFlash CS3でコンパイルしなければならないが、コンテンツはほぼActionScriptオンリーで作成している。ソースはFlex Builder 3のActionScriptプロジェクトとして書いているのだが、Flash CS3でコンパイルするため[Embed]メタタグで画像等の素材を埋め込むことができない。そのため、Flashのライブラリに画像を登録し、リンケージで書き出している。
例えばIconクラスとしてリンケージ書き出したビットマップのシンボルは、ActionScriptの中で扱うときに
var iconData:BitmapData = new Icon(0, 0); var icon:Bitmap = new Bitmap(iconData); addChild(icon);といった感じとなる。
しかし、Flex BuilderからFlashのライブラリは参照できないので、Iconクラスの参照が常にエラーとして表示されてしまう。Flashのライブラリをクラスパスに加える方法はないものなのか。
で、このエラー表示は鬱陶しいなあと思っていた今日この頃だったのだけど、さっきリフレクションでオブジェクトを生成すればいいんじゃんということに気付いた。
var IconClz:Class = getDefinitionByName('Icon') as Class;
var iconData:BitmapData = new IconClz(0, 0) as BitmapData;
var icon:Bitmap = new Bitmap(iconData);
addChild(icon);これでFlex Builderからエラーの表示が消えた。スッキリした。他のエラーにも気付きやすくなったし。
リフレクションでのオブジェクト生成がパフォーマンスにどれ位影響を与えるのか、後で調べてみる。
追記
簡単なパフォーマンステストをしてみた。リフレクションの方が遅いと予想してたけど、僕の環境ではリフレクションで生成しようが、クラスを直接参照して生成しようが実行速度は変わらなかった。
2008年02月29日
Flash | TextFieldの最小限の高さ
TextLineMetrics - Adobe Flex 3リファレンスガイド
TextFieldのheightプロパティを、そのフィールドに含まれるテキストに合わせた最小限のものにしたくて次のようなコードを書いていた。
var textField:Text = new TextField(); textField.wordwrap = true; textField.text = '長いテキストと仮定します。'; textField.height = textField.textHeight;しかし、これだと複数行になる場合に何故か最終行が表示されず困ったことになる。なので、上のコードの最後を
textField.height = textField.textHeight + 5;と、その時の気分に合わせて適当に高さを加えていた。
上記のTextLineMetricsクラスのドキュメントに掲載されている図を見て、このナゾが理解できた。
TextFieldの中のテキストとTextFieldの枠(heightの対象になるもの)の間に上下それぞれ2pxずつのガターがあったのだ。なので、最終行までちゃんと表示させるにはTextFieldの高さはtextHeightの値に少なくとも4pxを加える必要がある。つまり、TextFieldの高さを最小限にするためには次のようなコードになる。
var gutter:int = 2; textField.height = textField.textHeight + gutter * 2;
幅に関しても同じ。すっきりした。
2008年02月27日
Flash | CS3のTextInput、TextAreaコンポーネント
TextArea - ActionScript 3.0 コンポーネントリファレンスガイド
Flash CS3のテキスト入力コンポーネントへの入力を監視してゴニョゴニョやろうと、textInputイベントをlistenしてたんだけど、このイベントオブジェクトのpreventDefault()メソッドを呼んでも何も起こらない。そのまま入力できてしまう。
長時間いろいろ試した挙げ句に最終的にソースを読んでみると、コンポーネントの内部でTextFieldからのtextInputイベントを一度キャッチして、イベントオブジェクトを作り直して再送出していた。このイベントオブジェクトのcancelableプロパティはfalseになっていた。
あれ? cancelableプロパティはtrueってドキュメントに書いてあったじゃんと思って再度見てみると、
cancelable:と書いてあった。確かにウソは書かれていないのだけど。。。ここではfalseに固定されてるんだから、trueの場合のことなんて書くなよ。
true は、preventDefault() メソッドを呼び出して、デフォルトの動作をキャンセルします。
幸いなことにtextInputイベントを再送出している箇所のメソッドがprivateではなかったので、これらのコンポーネントクラスを継承した自前テキスト入力コンポーネントを作って解決。
2008年02月25日
Flash | Red5 0.7.0
Red5 v0.7.0 final 02.23.2008 Open Source Flash
Red5の新バージョンがリリースされていた。今まで0.6.3が出たちょっと後のSVN Trunkバージョンを使っていたけど、これを機に最新にアップグレードしてみたら、既存のプログラムは動かなかった。
Red5はこんなことの繰り返しだ。早く安定して欲しい。
2008年02月20日
Flash | Flex to Flash
Flex(ActionScriptプロジェクト)で開発していたものをFlash CS3環境に移行しなければならなくなった。すぐにできるかと思ったら、結構面倒くさかった。
以下、やったこと。
Embedしていた画像やSWFといったアセット類をFlashのライブラリに移し、リンケージの設定やらコードの修正を行う。
corelibとas3syndicationlibが動かない。というか、componentsフォルダに置いてもこれらのSWCがFlash CS3から認識されない。なので、ソースファイルをクラスパスに加える。が、コンパイルエラー。corelib内のクラスからmxパッケージ配下のクラスへの参照があるため。Flex 3のソースディレクトリをクラスパスに加えてみたが、うまくいかなった。仕方ないので、mx.utils.StringUtilへの参照をcom.adobe.utils.StringUtilに変更。
コンパイルは通ったが今度はas3syndicationlibのDateUtilクラスから例外がスローされる。調べてみたらこのバグ報告と同じ。
対処方法は、このブログエントリーのコメント欄に。DataBase.asをcom.adobe.utilsパッケージに置いて、DateUtilクラス内のDateBaseクラスへの参照をこのcom.adobe.utils.DateBaseに変更する。
これで動くようになった。
corelibやsyndicationlibなどのコアとなるようなライブラリはmxパッケージに依存しないで欲しい。
2008年02月15日
Flash | Wowza H.264サポート
Wowza Media Server Pro H.264 Preview Release
これが正式にサポートされるようになると、FMS 3との機能差は大分縮まる。
2008年02月09日
Flash | AS3 デコンパイラ
出力されるデコンパイル結果は僕には何だかよく分からないものだけど、クラスに含まれるメソッドやその引数、変数にどんなものがあるのかは読み取れる。
さっきこのデコンパイラの存在を知ったばかりなんだけど、早速これが役に立って、ある問題の回避方法が分かった。これで眠れる。
2008年01月30日
Flash | Commandsライブラリ
fladdict.net blog: AS3で非同期処理を行う為のcommandsライブラリ
すばらしい。SerialCommandクラスがかなり便利そう。後でソースを追ってみよう。
これらのCommand連結を流れるようなインターフェースで実現できればベター。
ちょろっとSerialCommandクラスのソースを見てみたけど、次の関数処理に移る際の条件となるイベントがEvent.COMPLETEに固定されている。デフォルトはCOMPLETEイベントでいいと思うんだけど、Commandを連結する際に他のイベントに設定できるとより便利かも。
2008年01月28日
Flash | Flex UIコンポーネントのcallLater()メソッド
callLater() メソッドの使用 -- Flex 2このメソッドの存在を今更ながら知った。次回のEnterFrameイベント発生時まで処理をペンディングするということか。いちいちイベントリスナーの処理を書かなくていいから便利そう。多用すると危険な気がするけど。callLater() メソッドは、現在の更新ではなく、次の画面更新で実行する処理をキューに格納します。
ActionScriptの関数としても欲しい。自分で書けばいいだけか。
2008年01月23日
Flash | Loaderのイベント
TNSTUDIO blog: AS3_メモ4これはおそらくcompleteイベントではなくinitイベントをlistenするようにすればいいのでは?
ロードした画像にスムージングかけたいのだけども、パブリッシュブレビューだとロードがcompleteしたタイミングで、event.target.contentを参照してもnullになったりしませんか?
loader.contentLoaderInfo.addEventListener(Event.INIT,
function(e:Event):void {
// var loader:Loader = e.target.loader;
var bitmap:Bitmap = loader.content as Bitmap;
}
});試してないけど。
2008年01月16日
Flash | クロスドメインでのリダイレクト
例えば「www.example.com/base.swf」のFlashコンテンツから「before.example.net/cgi-bin/data.cgi」というURLに対してCGIのリクエストを行っているとする。クロスドメインなリクエストになるので、このURLでのCGI呼び出しの前に「before.example.net/crossdomain.xml」が読み込まれる。
さて、今日あるトラブルにより、Flashは何もいじらないまま「before.example.net」へのCGIリクエストを「after.example.net」に転送させる必要があった。そのためまずbefore.example.netのApacheでmod_rewriteを使って全リクエストをafter.example.netにリダイレクトさせるようにした。
ところが、これだと
・Flash → before.example.net/crossdomain.xml →(リダイレクト)→ after.example.net/crossdomain.xml
となり、Flashコンテンツは「after.example.net」に対してリクエストを許可されることになる。つまり、以降の「before.example.net」へのリクエストは許可されていないことになりFlashからリクエストは送信されない。
解決策としては、「before.example.net/crossdomain.xml」は転送しないでそのままFlashに返すようにする。こうすると
・Flash → before.example.net/crossdomain.xml
・Flash → before.example.net/cgi-bin/data.cgi →(リダイレクト)→ after.example.net/cgi-bin/data.cgi
といった望ましい挙動となった。
要するにFlashからのリクエストをリダイレクトする場合、crossdomain.xmlへのリクエストはリダイレクトしてはいけないということ。
2008年01月15日
Flash | URLLoader
AS3であるWebサービスを使用するライブラリを作ろうとしていたところ、いくつか引っかかったポイントがあった。
まず標準APIのURLLoader。そのWebサービスはWSSE認証が必要だったために、HTTPのリクエストヘッダに任意の値をセットできる必要があった。幸いURLLoaderに渡すURLRequestクラスのAPIドキュメントを見ると、requestHeadersプロパティが用意されている。
WSSEヘッダの値の生成は、corelibのWSSEUsernameTokenクラスを使えばOKなので、これでWSSEの認証部分はOKだなと思ったら、ここに第一の罠が。
URLLoaderでリクエストヘッダを付けたリクエストを送っても、そのヘッダが付いていない。検索してみると「URLRequestHeader#requestHeadersが反映されない」というFxUGの投稿が見つかった。同じ症状。
結論から書くと、FxUGで書かれているようなcrossdomain.xmlが云々という問題ではなく、GETリクエストでは任意のリクエストヘッダが付与されないということが分かった。同じリクエストのmethodをPOSTにして適当にPOSTデータを付けてURLLOaderから送信してみるとWSSEヘッダはちゃんと付いていた。おそらくFlash Playerの問題。仕様なのかバグなのかは分からないけど。
じゃあ、GETリクエストで任意のリクエストヘッダが付けられるURLLoaderをSocket使って自作するしかないのかと思っていたところ、次の記事を見つけた。
HTTP Authentication for HTTP/GET requests using ActionScript 3上と同じことが書いてあります。で、この人はHTTPURLLoaderクラスというURLLoaderではできない機能を持つものを作って公開してくれてます。基本的なインターフェースはURLLoaderと同じなので、クラス名をHTTPURLLoaderに差し替えるだけで使える。I was not able to set the header of a HTTP/GET request. Macromedia Flash Player allows you set the header only for POST requests.
このお陰でGETリクエストでもWSSEヘッダを付けられるようになりました。
WSSE認証ができたら、次はPOSTメソッドでXMLデータを送受信する機能の実装。POSTリクエストなら標準のURLLoaderで問題ないなと思ったら、ここにもまた罠が。
何が悪いのか分からなかったのだけど、何度やってもレスポンスのXMLが受け取れない。COMPLETEイベントを受け取る前に、「Error #2032: ストリームエラー」で中断されてしまう。Proxyソフトで正しいXMLレスポンスが返ってきているところまでは確認できているのだが。
URLLoaderは使わずにHTTPURLLoaderクラスを使うかと思って、試してみたところHTTPURLLoaderクラスはPOSTメソッドに対応していなかった。あちらを立てればこちらが立たず。なかなかうまくはいきません。
HTTPURLLoaderに手を入れてPOSTに対応させるかとごちゃごちゃいじってたんだけど思い通りにいかず、最終的に行き着いたのがas3httpclientのSocketURLLoader。HTTPURLLoaderと同じ人が作ってます。もっと早くに気付いていれば。。
このSocketURLLoaderクラスを使うと、POST結果のXMLレスポンスもちゃんと受け取れるようになって、万事解決。前にも書いたHTTPステータスも受け取れるみたい。すばらしい。
2007年12月04日
Flash | Flash Media Server 3
アドビ、H.264対応のFlash Player、Media Serverをリリース - @IT
同時接続数や帯域の制限がなくてこの値段なら、前のバージョンに比べてかなりリーズナブル。
アップグレード価格は用意されてないのかな。
2007年11月09日
Flash | ライブストリーミングサーバ
糸柳和法のオッパイぷるるん☆放送局 - 各種 RTMP サーバーでのライブストリーミングの実現
FMS / Wowza / Red5 それぞれを使ってのライブストリーミング検証記事。オリジン/エッジサーバ方式のクラスタリング構成での検証も。これは必読。
そんなにクライアントが多くないマルチユーザアプリならRed5で特に問題なく動いているけど、負荷が掛かる状況や動画ストリーミングとなると怪しいところが出てくるのかも知れない。
Wowzaの動作検証をまだやってないけど、余裕ができ次第やってみないと。
2007年11月01日
Flash | onEnterFrameループ
今日学んだこと。
画面表示の裏でonEnterFrameループを使って重たい処理を分割実行するときは、毎フレームではなく数フレームに1回の割合で処理を実行するようにして画面表示処理への影響を抑える。
2007年10月19日
Flash | JIS X 0213文字セットへの対応
[231260]環境依存文字を入力すると文字化けする(Flash CS3)
Flashコンテンツの中のテキストフィールドにWindows VistaからJIS X 0213で追加された文字を入力しようとすると文字化けするというトラブルが発覚し、こちらで調べた限り対処法が分からなかったので、先日AdobeのFlash Playerテクニカルサポートに問い合わせを送った。問い合わせの翌日、Flashでは環境依存文字はサポートされておりませんと、上記URLを添えて返答があった。
上記サポートデータベースの内容はFlash CS3のものだがFlash Playerにも当てはまるみたい。ただ、Flashコンテンツ上にテキストフィールドに直接入力しすると文字化けするけど、コピペすると入力できるし(フォントがちょっとおかしいが)、サーバから取得した環境依存文字を表示する分には問題ない。次期バージョンでサポートされることを期待。
2007年10月18日
Flash | Flash CS3のアイコンパネル
Flash CS3に備わっている各種パネルのドッキング機能とアイコン化機能は、ステージやスクリプトエディタを広く使いたい場合にすこぶる便利。なんだけど、「アイコンパネルを自動的に折りたたむ」ようにしている時、アイコンパネルを開いたままFlash以外のアプリケーションに切り替えると、Windowsのタスクバーが点滅してしまうのが難点。
何とかできないものか。
Flash CS3にはまだまだ便利機能がありそうなんだけど、全然使えていない気がする。
2007年09月14日
Flash | MXPファイル作成
・Flash | MXP ファイルの作り方
・Flash CS3用コンポーネントの作り方
・mxpファイルの作成方法
・add some Extension Manager
2007年09月13日
Flash | 続・Remoting Classes for Flash CS3
フリーランス時代にトーサキと仕事したとき、Flash Remotingを使うと関数を呼び出してレスポンスを取得するまでのprogressが取れないのが気になる点として挙げられた。
あれから3年半。ActionScript 3になって、ようやくこの機能を実現できる目処が付いた。
以前に、Strippers Remoting ClassesというFlash 9からAMFを使ったRPC呼び出しを行うクラスを作ったけど、これはflash.net.NetConnectionを使って実装していた。NetConnectionクラスを使えばAMFプロトコル自体は全く意識しなくてもいいのだが、AMFに含まれる細かい情報を扱えないため、Django AMFの独自機能を実装する上で障害になっていた。
で、ここ数日ちょっと余裕ができたので、AMF <-> ByteArrayを相互変換できるようにし、flash.net.URLLoaderを使ってサーバとやりとりするように作り直している。ByteArrayクラス自体にオブジェクトのAMFシリアラズ/ディシリアライズメソッドが備わっているので、AMFメッセージの構造さえ知っていれば比較的容易に実装できる。URLLoaderクラスを使えばProgressイベントが取れるため、前述の機能が実現できるようになった。
サーバから受け取ったAMFメッセージのバイナリデータを自分でパースするので、NetConnectionクラスやFlexのRemoteObjectクラスでは取れなかったAMFのヘッダを自在に扱うことができるようにもなった。
このAMFヘッダをHTTPヘッダのように扱えば、前に考えていたキャッシュ的な機能を実現できるかも知れない。
Flash | FlashでHTTPステータス
HTTPStatusEvent - Adobe Flex™ 2 リファレンスガイドURLLoaderクラスでサーバから受け取ったレスポンスのHTTPステータスコードを参照しようとしたら、常にゼロ。どういうわけだ?と思ってAPIドキュメントを調べてみたら、ちゃんと書いてありました。HTTP ステータスコードをプレーヤーに渡すことができないブラウザで実行される Flash Player プラグインでは、常に値 0 が生成されます。該当するブラウザには、Netscape、Mozilla、Safari、Opera、および Internet Explorer for the Macintosh があります。
って、Win IE以外の主要ブラウザではHTTPステータス取得できないじゃん。HTTPステータス取得は諦めるしかないか。
URLLoaderじゃなくてSocket使ってHTTPプロトコルを実装すればできるのかな? JavaのCommons HTTPClientやCommons NetみたいなライブラリはまだAS3では存在しない?
2007年09月12日
Flash | AMF Predefined Headers
Predefined headers | Open Source Flash
このページは見過ごしていた。あとRemoting EnvelopeとDebug informationのページも。
これらのページを読んでDjango AMFではいくつかAMFの解釈を間違ってた部分があることに気付いたので、直してリリースした。
定義済みヘッダのうち、RequestPersistentHeaderは独自機能を実装する上で重要そう。「This is implemented in mx.remoting.Connection.」とあるけど、flash.net.NetConnectionでもサポートされているのかどうか調べなければ。
DjangoではURLにくっつけるタイプのセッションIDをサポートしていないのでDjango AMFでAppendToGatewayUrlヘッダは意味がなさそうだけど、AMFPHPはこのヘッダの機能を使ってたんだなということが分かった。
ReplaceGatewayUrlヘッダは、ゲートウェイURLのリダイレクト機能ってことか。何かに使えるかな?