» fla01 (SWF)
» fla01 (source)
» fla02 (SWF)
» fla02 (source)
Processingの勉強中。でもActionScriptで書いてる。ProcessingのIDEインターフェイスは渋くて格好いいなあ。コーディングしにくいけど。
» fla01 (SWF)
» fla01 (source)
» fla02 (SWF)
» fla02 (source)
Processingの勉強中。でもActionScriptで書いてる。ProcessingのIDEインターフェイスは渋くて格好いいなあ。コーディングしにくいけど。
» Unknown Pleasures (SWF)
» source
Joy Division / Unknown Pleasuresのアートワークの幾何学模様を再現したかった。地形っぽさはBitmapData.perlinNoise()によるもの。画面クリックで再描画(ちょっと重いかも)。あとMacのFirefox3だけ?なのかしらないけど、Mac Firefox3だとstageプロパティがうまく取得できてないっぽい(stage.stageWidthなどが取得できない)。Safariは大丈夫だった。Flash Player 10と相性悪いのかな。
せっかくなのでThe 25-Line ActionScript Contestに応募した。マジックナンバーだらけになったけど25行ピッタリでいけた。
ブログ右上About欄のちっさいMacドック風なやつがそれ。僕がちょくちょくやってるWebサービスのアイコンで埋めてみた。Leopardのドックはこんな動きのような。。。。pixivもいれてもよかったんだけど大きいアイコンが見当たらなかったので断念した。もう少しソースに汎用性がでてきたら公開するかブログパーツにするかなりしようと思う。
BeatTimer – Spark projectというリズムを管理するライブラリ(メトロノーム)のテスト。シンプルな構造なのにかゆいところに手が届いていて面白い。使い道が色々ありそう。
Wikipediaを見て調べたので大嘘があるかもしれません。Wikipediaの文章には即しているつもりです。
コピーレフト(使用等に関する制限が派生物に一生つきまとう)。配布する場合は、改変できるように必要なものを全て配布する必要があり、また複製・改変したものを再配布する場合も同様にGPLに関わるもの全てを開示しなくてはいけない。GPLを含む商用アプリケーションを配布する場合は面倒くさいかも。TVゲームのICOでGPL違反があったとかでニュースになっていたのが記憶に新しい。著作者の表示とかは不要。
代表的なもの:
amfphp
FLARToolKit – Spark project
参考:
GNU General Public License – Wikipedia
コピーレフト。基本はGPLと同じ。ただし再配布物のライセンスをMPL, GPL, LGPL(Lesser GPL。GPLより制限の緩いもの)から選択可能な点が異なる。一旦ライセンスを変更した派生物はそのライセンスに従う必要がある。例えばMPLのものを改変しGPLで再配布したらその派生物のライセンスは以降GPLとなる。下記のThunderBoltはコンソール本体のソースを公開していないのでプロジェクト全体としてはMPLの基準を満たしていない。
代表的なもの:
flash-thunderbolt – Google Code
Flex SDK – Adobe open source
参考:
Mozilla Public License – Wikipedia
非コピーレフト。問題が生じても一切責任は負わないという条件が特徴(免責事項を記載しなくてよい)。好き勝手使ってよい。著作者と使用許諾(どちらも決まったフォーマット有。詳しくはlicenses/MIT_license – Open Source Group Japan Wiki)を全ての配布物、または重要な箇所に記載しておく必要がある(開示の必要性があるかどうかは不明)。Flashのオープンソースプロジェクトはこのライセンスのものが多い。
代表的なもの:
papervision3d – Google Code
tweener – Google Code
rubyamf – Google Code
非コピーレフト。上記MITライセンスと似ていて無保証と著作権表示を守れば改変・再配布OK。さらに配布物の開示も不要。現在はBSDライセンスに関する宣伝条項を撤廃したNew BSD Licenseが主流(著作者表示を撤廃したわけではない)。
代表的なもの:
as3flexunitlib – Google Code
as3corelib – Google Code
Cairngorm – Adobe open source
非コピーレフト。著作権と免責事項の表示が必要(テンプレート有)。改変したものを配布する場合は、改変箇所の明記が必要。配布時には別途Apacheライセンスの条文コピー(LISENCE)と使用ライブラリに関する詳細(NOTICE)を記述したファイルを添付する必要がある。
代表的なもの:
away3d – Google Code
ICODecoder – Spark project
参考:
Apache License – Wikipedia
Apache License, Version 2.0 – The Apache Software Foundation
New BSDライセンスに関する説明を訂正。詳細はNew BSD License のNew部分を勘違いしてた – boreal-kiss.com
Flash本。ネットで断片的に情報を集めるとえらい時間がかかりそうな膨大な数のオープンソースプロジェクトを一カ所に集めてレビュー(ほとんどは紹介のみだがワクワクさせられる)しているすごい本。しかもそれぞれのプロジェクトの責任者のような人が執筆しているのがよい点で俄然信頼性がでてくる。内容が無茶苦茶濃いので全部読めてないけど、AMFPHPとデバッグツールに関するレビュー部分は役立った。haXeが気になった。前半5章ぐらいを同じ人が執筆しているのだけど、何故かActionScript 2と3を(断りなしに)混在させて説明していくスタイルなのでよみづらい。Papervision3Dは10ページほどしか説明されていない。こんな中途半端にページ割くぐらいならなくてもいいんじゃない。あとTweenerじゃなくてFuseってのが紹介されてる。Tweenerにしろよ!
Flex本。名前の通りFlexとその他とのデータ通信、という部分に重点を置いている。HTTPService(URLLoadrと違うところ)やRemoteObject、サーバー側の各技術についてそれぞれ章を設けて過不足なく説明している。本の半分は各サーバーサイド技術のケーススタディなので中々貴重な本なんじゃないかな。RemoteObjectに必要なconfigファイルが何なのか説明がなく残念(今だに理解できておらず)。Ruby(Rails)との連携が全然書いてないのも残念無念。
Flex + AIR本。マッシュアップされる側(Twitter, Amazon, etc.)のAPIの説明に重点が置かれていて、ActionScriptはできて当たり前という感じ。扱っている内容は高度だと思う。同時に3コのAPIを盛り込んで(1コずつやれよ!)モリモリコーディングしていくけどスクリプトの説明はおかまいなしというスタイルで、重要なところが見えにくく教本としてはあまり好きになれない。後半、結構なページ量AIRに割かれていて、それは役立った。特にFlexからAIRに移行する際のつまずきそうな箇所に重点が置かれている(ウィンドウと***-app.xmlについて等)。
Twitterクライアントの作成例の図に日本人の方の発言がでかでかと掲載されてて超おもろい。本の著者は絶対理解してないだろうけど。
****: エロゲはよくわからんな。
*******: 靴脱がしちゃらめええええええええ(Creating Mashups p.212 Figure 10-4より)
サーバーから受信したxmlデータをActionScript Objectで受信したとき、格納したArrayCollection (Array)の構造を簡単に調べたいというのがそもそもの目的。いくつかあたってみたのでその簡単な使い方と個人的な感想を書き留める。Flex 3でしか確認していないので、Flashの場合は少し勝手が違うかもしれません。結論を先に言うと、Xray, ThunderBolt, Arthropodの中で目的を達成できたのはXrayのみ。個人的に気に入ったのはArthropod。
以下のようなxmlデータをHTTPServiceのレスポンスとして受け取りArrayCollectionに格納したとき、ネストした内容(id, name)がLoggingツールで見れるかどうか確認。
<?xml version="1.0" encoding="utf-8"?> <users> <user> <id>1</id> <name>Chris Allen</name> </user> <user> <id>2</id> <name>Wade Arnold</name> </user> <user> <id>3</id> <name>Aral Balkan</name> </user> <user> <id>4</id> <name>Nicolas Cannasse</name> </user> </users>
生のArrayCollectionの中身は見えなかったが、ArrayUtil.toArray()を用いて受信データをArrayCollection -> Arrayに変換すれば確認可能。ツール自体の機能で、ステージ上のオブジェクト全てのプロパティを丸見えにすることができ、さらにプロパティをXrayコンソールから動的にいじることができるのが便利。フレームレートがリアルタイムに確認できるので、例えば予定以下のパフォーマンスだった場合に、ボトルネックになる箇所を探せる可能性がある(アルファをいじったら改善された etc.)。難点は超不安定なところ。専用コンソール(.swf)がやたらと落ちる(起動中に止まる)。Macを再起動しないと再生できないような状態になることもしばしばで、使うのがためらわれる。現在開発進行中ではないことも理由かもしれない。
import com.blitzagency.xray.inspector.flex2.Flex2Xray; import com.blitzagency.xray.logger.XrayLog;
をインポートし、それぞれのインスタンスを作成して、swfファイルを起動(例えばmyFlexと命名)。
var xray:Flex2Xray = new Flex2Xray(); var log:XrayLog = new XrayLog();
//ac is ArrayCollection receiving the xml data var ary:Array = ArrayUtil.toArray(ac); log.debug("Nested arrays:", ary);
シンプルでコンパクトで見た目もこぎれいなAIR製Logger。利用方法も簡単なので非常に良いと思うけど、目的は達成できず。ArrayColection、ArrayCollectionをArray変換したもの、ネストしたArrayともに視覚化できなかった。今回は結局何にもできなかったけど、個人的にはオススメ。
import com.carlcalderon.arthropod.Debug;
//ac is ArrayCollection receiving the xml data var ary:Array = ArrayUtil.toArray(ac); Debug.array(ary);
Arthropodと同じくモニターはair製で、Flash Playerが吐くFlashlog.txtをモニターする作りになっている。ArrayCollection、ArrayCollectionをArray化したものの視覚化はできなかったが、例えば以下のようにネストしたArrayの中身は確認できた。
var ary:Array = [{id:"1",name:"Chris Allen"}, {id:"2",name:"Wade Arnold"}, {id:"3",name:"Aral Balkan"}, {id:"4",name:"Nicolas Cannasse"}];
ただ、僕の目的は達成できておらず、さらに起動までの設定が少し面倒、モニターが無駄にでかい、なんか見た目がダサイというところが使う気を起こさせない。
設定についてはFlashのログ閲覧アプリThunderBoltをいれてみた|_level0.CUPPYが詳しいのでそちらを参照ください。少し補足しておくと、Flash PlayerにFlashlog.txt (Macの場合、/Users/USERNAME/Library/Preferences/Macromedia/Flash Player/Logs/flashlog.txt)というログファイルを吐き出させる設定が必要で、そのためには”/Users/USERNAME/mm.cfg”に以下の記述をする必要がある。
TraceOutputFileEnable=1
この本読んでFlexの基礎を習得したのだから文句いうなと言われそうだけど、払った金額は知識増と相殺、プラスαでストレスをもらったのでむかついている。
レーダーチャートによる評価レビューはこちら。文句言ってるわりにリファレンスとしてちょくちょく読んでたりする。
various functions with different distributions for Math.random() « Pixeleroで興味深いことをやっていたのでFlashで実践。Math.random()の頻度分布は0以上1未満の範囲でだいたいフラットな形状になる。じゃあ例えばこれは?
f = (Math.random()+Math.random()+Math.random()+Math.random()) / 4
フラットな頻度分布にならず0.5近傍に頻度のピークがくる。なんでだろ。パっと理由が思いつかない。以下にデモとActioScriptソース等。横軸が関数の返す値、縦軸が頻度でスライダーをいじると関数形が変わります。
言及されていた。[ActionScript3.0](標準)正規分布乱数 | moriBlog
中心極限定理というらしい。ちなみにMath.random()を10万回足し合わせて10万で割ると値はほぼ0.5。相対誤差0.1%未満になる。Math.random()だけを使って特定の数値を作ることが可能なわけだ。
Flex版を作成した。グラフ作成なんかはFlexで作るのが簡単でいいかも。ただファイルサイズがでかくなるのがネック。