AS3のIEDであるFDT開発チームが、サーバーサイドASとそのホスティングサービスを発表。 swfファイルをサーバーにアップロードすると、それがサーバープログラムとして振る舞うという胸熱仕様。いわゆるnode.as。 まだアルファバージョンだけど、みんなで遊び始めたまとめ。 少しわかりやすいように、話題によって投稿順を入れ替えています。 続きを読む
Flashで輪郭抽出を行う方法はいくつかあるかと思いますが、 畳込みフィルターよりも、(ビジュアル的に)綺麗な輪郭抽出にチャレンジしてみました。 今回はPixelBenderで輪郭抽出アルゴリズムのひとつの、Sobelオペレータを実行しています。 Sobelオペレータについては、Web上にたくさんドキュンメントがあるかと思うので 僕のつたない説明より、そちらを参考にしていただいた方が良いかと思いますが 前後のピクセルの差分をもとにゴニョゴニョする感じです。 サンプル pbjファイルはこちら pbkソースはこんな感じ < languageVersion: 1.0; > kernel EdgeDetection < namespace : ""; vendor : "Shimada Kousho"; version : 1; description : "detect edge"; > { i
スプライン曲線とは、与えられた複数の点を通る滑らかな曲線のことです。スプライン曲線を描くには、点と点の間を補完していくことになりますが、Catmull-Rom 補完とはその方法の一つになります。 Catmull-Romスプライン曲線 詳しい説明は上記ページに書かれていますが、これを as3 で書くとこうなります。 public function catmullRom(p0:Number,p1:Number,p2:Number,p3:Number,t:Number):Number { var v0:Number = (p2 - p0) * 0.5; var v1:Number = (p3 - p1) * 0.5; return (2*p1 - 2*p2 + v0 + v1)*t*t*t + (-3*p1 + 3*p2 - 2*v0 - v1)*t*t + v0*t + p1; } t を 0
避けて通ってきたところを理解できた(気がする)のでメモ。 リスナー関数を弱参照にする場合は、addEvenListener()の第5引数をtrueとする。 //例 //第5引数のデフォルト値はfalse this.addEventListener(Event.ENTER_FRAME, this.enterFrameHandler,false,0,true); trueを設定することでリスナー関数は弱参照となりガベージコレクション(GC)の対象となる。 ※弱参照とGCについては偉い人のサイトがわかりやすいです。 イベントリスナ (AS3) とガーベジコレクション:akihiro kamijo Tweenのアニメーションが途中で止まる:FumioNonaka.com はまったのはここで弱参照となるリスナー関数の状態。 どういうことかというと・・・ 以下の処理ではリスナー関数が弱参照でGCが発動
This domain may be for sale!
正月からずーっと仕事しかしてない気がするけど、たまにはこういうコード書きたい! ということで書いた。これでみんな自分オリジナルの radiko プレーヤーが作れるね! (※あたりまえだけど公式プレーヤーで聞ける範囲の人しか聞けないよー) package { import com.bit101.components.HBox; import com.bit101.components.Label; import com.bit101.components.PushButton; import com.bit101.components.VBox; import flash.display.Sprite; import flash.display.StageAlign; import flash.display.StageScaleMode; import flash.events.Event
as続: パーフェクトシャッフルは何回で元に戻るか - 西尾泰和のはてなダイアリーが面白かったので ActionScript で再現してみた。オリジナルの記事のように丸くするところはまだ。wonderfl にも投稿済み。ソースはこんな感じ(59行)。HSV を使うところは frocessing の ColorHSV クラスを利用してる。 //------------------------------------------------------ // Perfect Shuffle Visualization //------------------------------------------------------ package { import flash.display.Sprite; import flash.filters.BlurFilter; import froc
こんにちはtaroです. 明けましておめでとうございます. 今回はXMLを利用して、TextFieldに複雑な書式を設定する方法について考えていきます. TextFieldに複雑な書式を設定するには2通りの方法があります. TextFormatとTextField.setTextFormat()の組み合わせ. htmlTextを用いる. 今回はhtmlTextを使用して, 色々な書式を設定していきます. しかし, htmlTextというと少し面倒です. tf.htmlText = '<font face="_ゴシック" color="#C83E43"><u><a href="event:' + event_name + '">' + str + '</a></u></font>'; このように, + や ' が大量にある式を書くこととなるからです. XMLを利用する そこで, htmlTe
AS3ではガベージコレクションによるメモリ管理が導入されています。 ガベージコレクションとは、簡単に言えば「どこからも参照されなくなったオブジェクトがころあいを見計らって勝手にメモリから消去される」仕組みです。 この「どこからも参照されなくなった」という条件がクセモノで、気をつけないとすぐにメモリーリークの原因になります。 メモリーリークの例 まず、キーボードが押されるとTESTというイベントを発行するSampleクラスを定義します。 package { import flash.display.Sprite; import flash.events.Event; import flash.events.KeyboardEvent; import org.as3s.Document; //Sample Class Ver.1 public class Sample exten
AS3のメモリリークに関しては、数々のFlasherさんのブログで語られていますが、共通して「不要になったオブジェクトをnullするだけじゃなくて、そのオブジェクトの全てのイベントをremoveEventListenerしてね」ということが書かれていると思います。 僕もそこらへんを気をつけて、AS3でコーディングしていたりするのですが、たいてい、 不要になる = 表示リストから消すとき(removeChildするとき) というのがほとんどなので、不要になるオブジェクトのクラスにREMOVED_FROM_STAGEのハンドラをつけて、その中で全てのイベントをremoveEventListenerしています。もちろんこの「Event.REMOVED_FROM_STAGEのハンドラ」自身もその中でremoveEventListenerしてます。 以下サンプルです。 PLAIN TEXT Ac
絶賛そうめん勉強中です。 そうめんでは、SerialExecutorやParallelExecutorを利用して複数のスレッドをまとめたとき、その進歩状況を獲得することが出来ます。 ロードのプログレスバーを作成する場合などで利用できます。 今回は、まず「画像を複数順々に読み込む→プログレスバーをフェードアウト→画像を順々に表示」ってスレッドを作成して実行します。 そんで、別に進歩状況を見るスレッドを作成して、それでプログレスバーを動かします。 っていうか、サンプルを改造したまんまです。 とりあえず、こんな感じのサンプルを作ってみました。 今日わかったことは、 ・複数の進歩状況を見る場合は、MultiProgressってのを利用する。 ・IProgressを継承したクラスには、percentっていうプロパティがあって、それで進歩状況を見ることができる。 って感じですか。 以下、ソースです。
おはようございます。 金曜の会社の飲み会で、のどをやられたようです。 それにしても寒いですね。先日石油ヒーターを出しました。 さて、今日は前回投稿の画像保存を「そうめん」を利用してやってみたいと思います。 ■そうめんとは BeInteractive!のyossyさんが作ったActionScript Thread Library 1.0(そうめん) です。 使ってみた感想は・・・とても便利です。 いか、良いと思ったことです。 addEventListenerとさよならできます。 次に行う処理がはっきりし、可読性が上がります。 簡単に待ち(sleep)処理ができます。 割り込み処理ができる では、前回投稿の画像保存処理がそうめんを利用するとどうなるか見ていきましょう。 ■画像をダウンロードするURLLoaderThread URLLoaderにThreadの機構を追加した拡張クラスです。 va
wonderflは、サイト上でFlashをつくることのできるサービス。 通常Flashをつくるためには、Flash IDEやFlex、FlashDevelop等といったツールを使って、コードを書き、コンパイルする必要がありますが、wonderflでは、サイトにあるフォームにActionscript3のコードを書けば、サーバサイドでコンパイルを行えます。 つまり、ブラウザさえあれば、Flashをつくれます。コンパイル結果はサイト上に表示され、作成されたFlash(swf)はページ上に自動的に表示されるので、完成したFlashをリアルタイムに見ながらコードを書くことができます。 ※APIとして、はてな OpenIDを使用してネットにさえつながれば、誰もがFlashクリエイターになれます。世界中のFlashクリエイターがユーザーになるwonderflは、 文字通り、世界のFlash図鑑となってい
_level0 でご無沙汰しています。 この度 SynthProbe (iTunes はコチラ) という iPhone の音楽アプリを作りました! (通称、セオシレーターと言われていた GravSynth を大幅にパワーアップ&もっと楽しく使いやすくしたものです。音楽好きの方は是非!) が、、、ちゃんと Flash もつくっている seo です。。 さて、SynthProbe で Delay (音がやまびこのように聴こえるエフェクト) を実装したのですが、それを AS3 にしてみたので作り方をご紹介します。 という前に Delay の仕組みをまず説明。 どうやってエコーを実現しているかというと、輪になって永久に回るカセットテープをまずイメージしていただくと良いかもしれません。(↓実物はこんな感じ) そのテープに録音をするヘッドと再生するヘッドがありまして、まず入力信号 (マイクとでもしてお
Flashでゲームなどを作る時に、動作の重さは悩みの種です。 軽い容量となめらかな拡大縮小が長所のFlashなのですが、その分、描画速度は犠牲になっていて、フルフラッシュサイトでCPUをガンガン食われてしまった経験もあると思います。 この重さを解決する方法の1つとして、BitmapDataを使うというものがあります。 これは素材をgifやjpegにする、という話ではなく、表示部分の扱いをビットマップデータにしてしまうというものです。 たとえ素材がgifでも、MovieClipとかに入れてたくさん表示しているととたんに重くなってしまいます。 これをBitmapDataとBitmapクラスによる表示に切り替えるだけで、軽くできることがよくあります。 ちょっとサンプルで体感してもらいましょう。 wonderflにはこういう実験作品があるのでちょっと拝借。(リンク先の画面右側の三角マークを押せばサ
こないだのてら子では中継に初めてニコ生を使ってみたんだけど、初めてすぎて途中でいろいろめんどくなっちゃって Ustream に切り替えちゃった。お金もかかるしねー。まーでもあのコメントがだーって流れるのはそれはそれでおもしろい。で、前にもそんあことを思ったことがあって、Ustream のチャットをニコニコ風にオーバーレイして流すニコニコ Ustream ってのを作ったことがありました。(わー、2 年も前だわw。超絶おもしろかったなあ)そんときは、Ustream のプレイヤー swf から FMS とのやりとりをこっそり拝見させていただきまして、ストリームをぶっこぬいてたのですが、まー、そんな手がいつまでも使えるわけもなく、まったく動作しなくなっておりました。んで、最近 @hoehoe 氏のブログで Ustream Flash Client API とかいうのがあるのを知りまして、じゃー、ま
いつも勉強になる_level0.KAYACさんのブログでイベント告知(ごはんとFlash -Its a wonderfl rice-)がありましたが、皆さん詳細をチェックしましたか? ライブコーディングというその場でActionScript 3.0を書いて課題のFlashを作るという企画もあるのですが、私も参戦します。果たして30分で作り上げることができるのか、今から緊張します。 さて、前置きが長くなりましたが、wonderflで検証されたActionScript 3.0最適化手法をまとめてみました。詳細は以下から。 Bitmap関連 Flashの処理速度の最適化において、描画処理の最適化は最も効果があります。ここではスクリプトで高速化した検証結果をまとめてみました。 BitmapDataクラスのdraw()とcopyPixels()だとcopyPixels()のほうが160%高速。 co
Papervision3D 2.0(GreateWhite)を試していたら、いつの間にか求めていたプロパティが実装されているではありませんか。filtersとsceneZという、なんとも被写界深度が実装できそうなプロパティ。というわけで被写界深度を早速試してみました。今まで苦労したのが嘘のように簡単にできました♪ Demo(require Flash Player 9) 仕様については以下にまとめております。 ポイントはuseOwnContainer DisplayObject3Dに実装されている「useOwnContainer」というプロパティがありますが、これをtrueにすることでfilterやalphaの使用が可能となります。 var o:Plane = new Plane(new ColorMaterial(), 100, 100, 1, 1); o.useOwnContainer
ActionScriptのonEnterFrameの扱いには気をつけなさいよねッ! のエントリでEnterFrameイベントを削除し、なるべくパフォーマンス向上させメモリ節約をさせる方法を書いたけれども、これはAS2用。 AS2のときの説明ではdelete hoge.onEnterFrame などを書いていましたが、その方法はAS3では使えません。では、それのAS3用のやり方。 AS3ではaddEventListenerでイベントを宣言。addEventListenerでENTER_FRAMEイベントを実行し、イベントを無効にしたい条件になったらremoveEventListenerでイベントを削除します。 hoge_mc.addEventListener(Event.ENTER_FRAME,hogefunc); function hogefunc(e:Event){ if( ENTER_
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く