サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
デスク環境を整える
www.be-interactive.org
トラックバックはありません。TrackBack URL:http://www.be-interactive.org/trackback.php?id=404
何を言っているのか分からないと思いますが、次のAIRアプリケーションをインストールして実行してみてください。 http://www.libspark.org/svn/as3/swfassist/trunk/samples/swfplayer/bin/SWFPlayer.air 実行するとウィンドウが現れるので、そこに何かアニメ的なSWF(ex: 魔理沙は大変なものを〜)をドラッグ&ドロップしてください。すると、しばらくした後、次のような感じでムービーの再生が始まります。 色々面倒なので線だけですが、全てActionScriptで描画しています。内部的にはswfassistを使っています。ソースはこちらにありますので、興味がある人はどうぞ。
知らないと損をするActionScript3.0の新文法をまとめて紹介します。 複数の変数の出力が楽に:trace 引数に変数を複数渡すと、自動的にスペースで区切って表示をしてくれます。 var a:int = 0; var b:String = 'hgoe'; trace(a, b); // Output: 0 hoge 要素の巡回が楽チン:for each 今まで、配列の要素を巡回するのは、次のようにするのがセオリーでした。 for (var i:Number = 0; i < list.length; ++I) { trace(list[i]); } しかし、もうこんな面倒な事は必要ありません。次のように書けば、list内の要素がひとつずつelementに代入されてループします。 for each (var element:Object in list) {
イベントリスナーにお困りの皆さんに朗報です。BeInteractive! は本日、革新的な疑似マルチスレッドライブラリである、「ActionScript Thread Library 1.0 (そうめん)」をリリースします。 先進的な Flash コンテンツを作るためには、XML や画像の読み込み、ムービークリップやスプライトの処理、ユーザーからの入力の処理、3D や物理エンジンといった様々なフレームワークとの連携といった、数多くの制御を行う必要があります。しかし、ActionScript 3.0 は、特にイベント周りが複雑で、このような制御を行うコードは、冗長で分かりづらいものとなりやすい傾向がありました。 このような問題は、コードが、私たちにとって馴染み易い、同期的でシーケンシャルに書けないことに起因します。そこで、ActionScript Thread Library 1.0 (
最近、「こんなのコミットしちゃっていいのかな...」とか「本当に勝手に修正しちゃって大丈夫なのかな...」とか悩んでいる人を見かけるのですが、そんな風に悩む前にコミットして欲しいと思います。良いとか悪いとか、使うとか使わないとか、それは周りの人やユーザーが決めれば良いと思います。コミットせずにしまい込んでしまったら、何かが起きる可能性はゼロです。 そうは言っても、あまりこういうのに慣れていない人にとっては、色々と不安もあるようなので、それを解消する為にちょっとまとめてみました。 コミットを恐れないで欲しい どうも、コミットを「かなり重大な儀式」のように感じている人が多い気がするのですが、もっと気軽に、言うなれば「Twitterで発言する」ぐらいの感じで捉えてもらいたいと思います。別にどんな小さなコミットでも良いし、何連続でコミットしようが、誰も咎めたりしません。 実際、僕も最近はA
BetweenAS3 でやっぱり物理的なイージングをサポートしたい。基本的には時間に基づくトゥイーンしかサポートしていないんだけど、「時間から現在値を算出する関数」と「目的地に着くまでにかかる時間を算出する関数」が導出できれば、組み込むことができる。というわけで、色々やっていたら、なんとなくできた。 今回は、誰もが一度は書いたことがあるであろう、フレームごとに現在値から目的地まで距離の半分ずつ近づく (ゼノンのパラドックスのみたいな) アレについて考えてみる。元コードはこんなイメージ。 function enterFrameHandler():void { x = x + (d - x) / 2.0; } まあ見覚えあるよね。x が現在値で d が目的地。 まずはじめに、この関数を一般化するところから。開始値を b として、係数 (上のコードでは 2.0 になってる値) を m としたとき
本日、サイボウズラボにて、Shibuya.abc#1が開催され、無事終了致しました。色々と協力してくださったTAKESAKOさん、nishioさん、そして発表してくださった変態の方々、見に来てくださった変態の方々、本当にありがとうございました。予想以上に楽しかったと僕は感じてるんですがどうでしょう?なんだかんだ言って皆かなりABC的な話で盛り上がってましたね。以下簡単レポ。 Shibuya.abc#1 基調講演 - beinteractive まず最初に僕の基調講演から。いきなりバイナリの話をして死者が出るといけないので、Tamarinで遊ぼう的な内容です。が、それが高じて遂にサーバーサイドActionScriptを実現してしまいました。詳しくは以下のスライド(PDF, 1.7MB)で。 http://www.be-interactive.org/works/Shibuya.abc-
新作お仕事情報です。本日オープンした、みんなで GAME を作って共有出来るニコニコ動画の新サービス「ニコゲー」内にあるジェネレータのひとつである、シューティングジェネレータを開発しました。だいぶ気合い入ってます。 言葉で説明しても分かりにくいと思いますし、折角なのでニコニコ動画にデモ動画をアップしました。 プログラミングの知識が無くても全然大丈夫。Keynote のように置けば動く直感さでありながら、できるだけ自由度を損なわないよう頑張って作りましたので、ぜひ遊び倒してみて下さい!
「この関数一体何処から呼ばれてんだよ!!」って思う事ありますよね。そんなとき、以下のコードで簡単にスタックトレースを取る事が出来ます(デバッグプレーヤーのみ)。 trace(new Error().getStackTrace());
馬鹿全さんが FLASHer 向けビット演算入門記事をアップしてますね。AS3 においては、必ずしも高速化にはつながらないですが、ビット演算ってパズルみたいで面白いですよね。例えば、 n = Math.max(n, 255); ※ n は整数 (uint) の代わりに、 n = (n | (((n & 0xffffff00) + 0x7fffffff) >> 31)) & 0xff; とか! 何をやってるのか少しずつ見て行ってみましょう。 一番最初に実行されるのは n & 0xffffff00 です。これで、「n が 255 以下の場合には 0 、それ以外は 1 以上」な値が作れます。 なぜかというと、255 以下の値というのは、8 ビットで全て表現出来るため、上位 24 ビットは必ず全て 0 になります。逆に 255 より大きい値は 9 ビット以上必要で、必ず上位 24 ビットのうち最低
ActionScriptの言語仕様とかバグとかの理解度テストを作ってみました。全部出来たらかなり変態チックだと思います。 次の各コードを実行したとき出力される値を答えてください。勿論、Flash使わずに。 解答は次のエントリにポストします。 1. var a:Number = 0; trace(a++); var b:Number = 0; trace(++b); 2. var list:Array = [1,2,3,4,5]; var copy:Array = list; copy[0] = 6; trace(list); trace(copy); 3. var o:Object = new Object(); o.a = 1; o.f = function () : Void { trace(this.a); } var f:Functi
先のエントリでお伝えした通り、Player10用のFlexSDKが出ていたので、密かに注目度の高い、FlashPlayer10の新機能「Vector」について、分かってることをまとめてみた。 Vectorとは何か VectorはECMAScript4から先行導入された機能で、一見Arrayと同じですが、全ての要素が同じ型でなければならないという制約が付きます。一般的な言葉で言えば、ジェネリクスです。 Vectorは、次のような新文法で宣言します。 var vec:Vector.<String> = new Vector.<String>(); .<String>という部分で、このVectorに付ける型制約を指定します。この場合、作られたVector変数vecは、Stringのみの配列になります。 いまのところ、Vectorの実体は、__AS3__.vec.Vectorにあります
なんか技術系の話題は久々? 今日ご紹介するのはBitmapData.lock/unlockメソッドですが、皆さんご存知でしょうか。ドキュメントを見ると、 この BitmapData オブジェクトが変更されたときに、BitmapData オブジェクトを参照するすべてのオブジェクト (たとえば Bitmap オブジェクト) が更新されないように、イメージをロックします。パフォーマンスを向上させるには、setPixel() メソッドまたは setPixel32() メソッドを何度も呼び出す前後に、このメソッドを unlock() メソッドとともに使用してください。 と書いてあります。 多分ほとんどの人がBitmapDataを表示するために、addChild(new Bitmap(bitmapData))とかやってると思いますが、実はsetPixelやsetPixelsをすると、画面の表示
最近、告知と勉強会エントリばっかりでしたが、タイトル通り、ActionScript でクラス置換風なことが出来ることに気付いたので、まとめてみます。この手法を使うと、任意の SWF 内で使用されているクラスを、自分で用意した別のクラスで置き換えて実行することが出来ます。ポイントは、その任意の SWF をパブリッシュしなおしたりだとか、バイトコードでどうこうだとかそういったハックの類を使わなくてよく、一切弄る必要がないところです。 サンプルを Spark project にコミットしたので、これを見ながら読み進めて下さい。 http://www.libspark.org/svn/as3/RuntimeClassReplacement/ まず、以下のような Context クラスと DocumentRoot クラスで構成された、contents.swf があります。 src/org/libsp
Beta2も出たことですし、作業効率を上げるためのショートカットを紹介します。常識と言われればそうかもしませんが、使ったこと無い人は是非試してみてください。ちなみにOSXなので、Windowsの人は適当に読み変えてください。 Command + クリック または F3 (Go To Definition) 恐らく一番使われるショートカット。変数名メソッド名クラス名の上でこれをやると、定義元にジャンプ出来ます。 Command + G (Search Declarations) 変数名やメソッド名やクラス名の上でこれをやると、それを定義しているコードを検索出来ます。 Command + Shift + G (Search References) 変数名やメソッド名やクラス名の上でこれをやると、それを参照している全てのコードを検索出来ます。 Command + Shift + T
otsuneさんのtumblr経由で、「MochiKit.Async.Deferredで非同期処理の同期処理を直感的に書く」を見たら、この辺この間のtwitterで書いたスレッドで実現するとどうなるか書いてみたくなったので書いてみる。このエントリと同じく、Flickrの写真をFFFFOUND!とtumblrにポストするスレッドを考えてみます。 まず、予めFlickrのpermalinkとmetadataを取得する「flickr.GetPermalinkThread」と「flickr.GetMetadataThread」、FFFFOUND!とtumblrにポストする「ffffound.PostFFFFOUNDThread」と「tumblr.PostTumblrThread」を作っておきます。これらのスレッドは、中でURLLoaderとか使ってリクエストを投げて、終わったらterminate
FlashPlayer10の目玉機能は、やはり3Dですよね。あー、これで3Dは全部ネイティブになってPapervision3Dも終わりか・・・と思っている人が多数居るようなのですが、それは間違いです。 FlashPlayer10でサポートされる3D機能は、SpriteやMovieClipを3D"的"に表示出来る、言うなれば2.5Dのようなものです。かなり基本的なところしかサポートされていませんし、完全な座標空間があるわけでもなく、Zソートすら自前でやらなければなりません。あくまで、3Dっぽい表示が出来るようになっただけです。 うわー、なにそれ使えねー!と思ったアナタ、そこでPapervision3Dです。逆に言うと、今回のアップデートで、今までどの3Dライブラリでもネックであった、3Dレンダリングが高速に行えるようになったわけです。というか、drawTrianglesといって、完全なパ
タイトルは若干釣りですが。 しばらく前に、以前エントリで紹介した、「オブジェクト指向入門」という本を読み終わりました。トータルで1000ページ以上ある辞書のような殺人的な本で何度か死にかけましたが、iPad を血で染めながらなんとか読み切ったのです。結果としては、かなり勉強になり、目から鱗もこぼれまくりでした。正直オブジェクト指向を全然理解できてなかったんじゃないかと思えるほどです。色々と思うところありましたが、読み終わって一番感じたのは、再利用性足りてるぅ? (CV: 田中理恵) ということでした。 「オブジェクト指向入門」から少し引用させてもらうと、オブジェクト指向とは、拡張性と再利用性 (他にもいくつかの要因がありますが) を高いレベルで達成するための手法です。拡張性とは、「仕様の変更に対するソフトウェア製品の適用のしやすさ」、再利用性とは、「多数多様なアプリケーションの構築に使うこ
次のページ
このページを最初にブックマークしてみませんか?
『BeInteractive!』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く