flexの最近のブログ記事

英語版(http://livedocs.adobe.com/flex/3/langref/index.html)は早くからFlex3.2に対応していたんだけど、いつの間にか日本語版(http://livedocs.adobe.com/flex/3_jp/langref/index.html)もFlex3.2に対応していました!!


Flex3.2っていうのは、いわゆるFlash Player 10/Adobe AIR 1.5のこと。


前はVector3Dとかのメソッドを調べるときは英語を読むしかなかったけど、日本語でも良くなったのでだいぶ楽になったね!!



ただ、謎なのが、英語版はタイトルが「Adobe® Flex™ 3.2 Language Reference」に代わっているのに対し、日本語版は「Adobe® Flex™ 3 リファレンスガイド」となっていて、統一感が・・・www



あと、AIRでは使えるけどFlexでは使えないものは、AIRのマークがついてるから一目で分かるけど、
FlashPlayer10では使えるけど、FlashPlayer9では使えないものがすぐには分からないのが、なんだかなーって感じ

中まで入って見るとランタイムバージョン:  10, 1.5とか書いてあるからわかるっちゃわかるんだけど・・・汗



あと、リファレンスに対してリンクを貼るとき、
http://livedocs.adobe.com/flex/3_jp/langref/index.html?Vector.html
とか
http://livedocs.adobe.com/flex/3_jp/langref/index.html?mx/core/UIComponent.html&mx/core/class-list.html

って?の後になんかつけるとフレーム付きのリンクになるってことを最近知った!!


このURLの取得法は、リンクしたいページの左上のフレームなしをクリックし、
ピクチャ 5.png


遷移先のフレームのリンク先URLをコピーすればおk






普段、はてなダイアリーは利用してないんだけど、

イベントの後とかでidトラックバックとかを受けることがあって、


そのとき、id:isocchiとかで飛んだ人が、ちゃんとこのブログに辿り着けずに
迷子の子猫ちゃんになったら大変だ!!犬のおまわりさん困っちゃうよ!!!


ってことで、前からこのブログへのリンクのための記事を書いていたんだけど、



自動で遷移してくれた方が楽だよなーっと思って、小さな親切大きなお世話をやってみた!!!



JavaScriptよくわかんないんだけど、はてな側でいろいろ制限をかけてるらしくはてなダイアリー上ではうまくハックしないとJavaScriptは動作してくれないらしいので、ActionScriptでハックした!!



IDトラックバック自体はとっても便利なので、外部ブログしか書いてない人は、
はてなダイアリーからリンクもしくは自動ジャンプするようにしとこ〜♪


自動ジャンプの設置は、このガジェットの値を自分用にセットして日記に貼るだけの簡単なお仕事♪

遷移先のURLは、あなたのブログ(ブログじゃなくてもいいけど)
カウント(整数)は、実際に遷移するまでのディレイ。0以下の数値が入ってたら、Flashが表示された次の瞬間くらいにジャンプするよ!!

あいだの,は消しちゃだめだよ!



Flexだと、クロスサイトにはcrossdomain.xmlで許可されてない限りアクセスできないし、

JavaScriptだと、jsonならアクセスできるけど、xmlはダメ。



そこでいちいち自前でサーバにプロキシなプログラムを用意するんだけど、なんかアメリカのYahoo!が作ってくれたらしい。



たとえば、百式のrssはhttp://www.100shiki.com/index.xmlなんだけど、flexから直接ここにアクセスしようとすると、SandBox侵害とかでてエラーが出る。



でも、URLを、
http://query.yahooapis.com/v1/public/yql?q=select * from rss where url='http://www.100shiki.com/index.xml'&format=xml

とすればおk


なんか、SQLちっくにXMLを加工できるサービスなんだけど、selectに*を入れてはいけない決まりはない!!・・・はず!!


利用規約読んでないからわからないwww

だめだったらごめんなさいm(_ _)m



ぁ、JavaScriptの場合は、format=jsonにすれば(きっと)おk!!


例:(右クリックからソースが見れるよ!!)






P.S.
Livedoor Blogにこのcrossdomain.xmlが置いてあるんだけど、
Livedoorは何がしたくてこういう書き方をしているのだろうか笑


<超参考>
米 Yahoo! が SQL っぽく色んなデータを取ってこれるAPIを出した - てっく煮ブログ


最終目的は、プログラムで任意のタイミングで同期的に描画処理を走らせたい!!

でももう半年近く悩んでるのにやり方がわかんないよー。・゚゚・(>_<;)・゚゚・。


ホントは分かってからまとめて書きたかったんだけど、

そろそろブログに書くネタリストが多すぎてやばい!!


そのうち脳細胞がスタックオーバーフローエラーとかアウトオブメモリーエラーを吐きそうだよ!!

なので、ぼちぼちブログにシリアライズするよ!!




非同期でもいいんあらinvalidateDisplayList()を呼べば次のフレームくらいで描画処理をしてくれるんだけど、

それをさらに加工したりしたいから、1つのfunctionの中で一気に処理したんだよね(´・ω・`)


すでに描画されてるものに対しては、BitmapData#draw(変換したいDisplayList)とかで出来る。
これを使って、visible=flaseでaddChildして、UPDATE_COMPLETEイベントを待って、drawすることも出来るけど、なんか格好わるい(´・ε・`)


んで、今回、画像ファイルからBitmapDataを変換する方法を発見!!(だが非同期・・・(´・ω・`)




やり方は、
        ・
        ・
        ・
    var loader:Loader = new Loader();
    loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loaderComplete);
    loader.load(new URLRequest("画像ファイルの場所"));
}

private function loaderComplete(event:Event):void {
    var bitmap:Bitmap = (event.target as Loader).content as Bitmap;
    var bitmapData:BitmapData = new BitmapData(bitmap.width, bitmap.height);
    bitmapData.draw(bitmap);
}




ぁ、FlashVarsとかについて書くって言ってて書くの忘れてる!!

間違えて記憶がガーベッジコレクションされちゃってるよ!!!


<参考>
ActionScript 3.0 PNGファイルをビットマップに変換する
Flex2でCoverFlowクローンを作る(4)〜鏡面加工する〜


ドキュメントを要約すると、


・RTMFPってなに??
RTMFPとは、Real-Time Media Flow Protocolの略で、Flash PlatformでP2Pな通信をするためのプロトコル。このプロトコルは、Adobe Flash Player 10, Adobe AIR 1.5にすでに搭載済み。
これを使うと、今まで出来なかった、Webブラウザでクライアント同士で直接通信できる。ビデオチャットなど多量のデータをリアルタイムにやり取りする場合など、サーバーを介さず直接データを交換できるので、サーバーの負荷軽減が期待される。


・RTMPっていうのなかったっけ??
FMS(Flash Media Server)っていうストリーミングを提供するサーバで実装されてるのが、RTMP。
RTMPはトランスポート層にtcpを使っているけど、PTMFPはudpを使っている。これによって、無駄なオーバーヘッドを減らし、リアルタイム性を向上させる。


・これを使うとどんなことが出来るの??
Webcam Chat, Voice over IP(VoIP), Multi-Player Gameを想定されている。(WebcamやVoIP関連の機能は、FlashPlayer10で強化された)
また、特徴として、ネットワークが一瞬切断されても、回復後に何もなかったかのように通史員で来たり、途中でIPアドレスが変更されても自動で対応してくる。さらに、グローバルIPがなくても大丈夫。(詳しくは仕組みのとこで)


・セキュリティについては??
RTMFPの通信は常に128bitの暗号化がなされており、また、P2Pによる接続要求を拒否することも出来る。



・どうやって使うの??
ActionScript2 or 3を使って、新たに追加されたNetStreamやNetConnectionなどのAPIを使えばいいとのこと。

・そもそもP2Pってなに??
□ End User to End User
  従来のサーバークライアント方式ではなく、サーバーを介さずに直接クライアント同士が通信すること。クライアントがサーバーの機能ももってる みたいな。(RTMFPはこれをサポートする)

□Swarming
  複数のユーザーから1つのファイルを分割して同時にダウンロードする方法。
  (Flash Player 10ではサポートしません)

□Multicast
  同じデータを複数のユーザに送信すること。(Flash Player 10ではサポートしません)


・これってどういう仕組みなの??
P2Pでの通信では、サーバーを介す必要はないが、サーバー自体がいあらないわけではなく、クライアントは常にサーバーと通信しており、P2Pで誰かに接続する時に、その相手先へのキーをサーバーから受けとる。サーバーから受けとったキーがあって、初めてFlashPlayerは、クライアントに接続できる。(クライアントは常にサーバーと通信しているので、IPアドレスの更新にもすぐに対応できるのかな)



・サーバーは??
次のFMSで追加されたり、Stratusを使えば無料で出来るみたい。ただし、β版
Stratusは年末くらいにβ版公開予定



iKnow

あわせて読みたいブログパーツ
Firefox meter