‘AS3’ タグのついている投稿

RailsにFlashからpostしたり取り出したりする

2008 年 3 月 29 日 土曜日

Railsのscaffoldでさくっと作ったインタフェースって、HTTP-POSTからSQLに保存したり取り出したりもできて色々プロトタイプを作るのに便利なのでまとめておく。
ためたデータの管理もできるし。

■Rails側の準備
まずrailsを入れる。
Macの人は既に入っているはず。Windowsなら、ActiveScriptRubyを入れてパス通すと、gemコマンドが入るのでgem install railsすればrailsコマンドが使えるようになる。DBはSQLiteのdll版をc:\windows\system32に入れればできる様になるはず。

railsでtestbbsというプロジェクトを作って、そこにscaffoldでentry(投稿)というmodelを作る。entryには、name(投稿者)とmessage(本文)が入る。

rails testbbs
cd testbbs
ruby script/generate scaffold entry name:string message:text
rake db:migrate

(単数形に注意)

webサーバーを立ち上げる

ruby script/server

http://localhost:3000/entriesから見れるようになっている。はず。(複数形に注意)

こんなページができている。ここからentryを増やしたり消したりもできる。
post from flash to rails

ここまでで、http://localhost:3000/entries/newから投稿できるのと、http://localhost:3000/entries.xmlから一覧を取得できるようになった。

Source Code (Ruby on Rails 2.0.2)

■Flashから投稿する
HTTP POSTで行う。

今回作ったもの(動きます)

Source Code (AS3 / Flash CS3 + Flashdevelop)
今回もFlashDevelop上でAS3書いて、FlashCS3オーサリング/コンパイルした。

こいつでPOSTすると、http://localhost:3000/entriesに結果が出るようになる。
post from flash to rails

どうやってるかというとまず
http://localhost:3000/entries/newを見ると

<form action="/entries" class="new_entry" id="new_entry" method="post"><div style="margin:0;padding:0"><input name="authenticity_token" type="hidden" value="a360f92a6a91d6c588d319f1ab475e9abbb22d9d" /></div>
  <p>
    <b>Name</b><br />
    <input id="entry_name" name="entry[name]" size="30" type="text" />
  </p>

  <p>
    <b>Message</b><br />

    <textarea cols="40" id="entry_message" name="entry[message]" rows="20"></textarea>
  </p>

  <p>
    <input id="entry_submit" name="commit" type="submit" value="Create" />
  </p>
</form>

という風にPOSTしているので、entry[name]とentry[message]をパラメータで渡せばいいとわかる。

(more…)

AS3 - あらためてラベリング処理

2008 年 1 月 31 日 木曜日

火曜に、imglのうっちーとあらためてラベリング処理ってどうやんのよという話をしていて、あらためてAS3で書き直した。
ただし、ラベルの衝突処理はまだやっていない。

ラベリング処理について→s.h.log: Proce55ing - 2値化画像を4近傍ラベリング処理してパーツ抜き出し

今まで、ラベルそのものを2次元のint配列で管理してたけど、今回はBitmapDataオブジェクトとして保存する様にしてみた。BitmapDataならx,y座標で要素にアクセスできるし、ピクセルはuint型なので都合がいい。

■できたもの
download => fla, as, swf (FlashDevelop3.0.0 Beta5 + FlashCS3)

年末年始作ったカメラから画像処理のサンプルを元に改造した。
webcamから撮影してBitmapDataにして、1ピクセルずつ走査して真っ白(0×00FFFFFF)のピクセルを検出。
さらにラベリング処理をして、「ピクセルのかたまり」毎に番号をつける。

(0×00FFFFFFは蛍光灯を撮影すると良いです)
labelinglabelinglabeling

今回はノイズを飛ばしたりしていないので、右の本棚の小さな白にも反応してしまって28個とか検出される
labeling

ラベルの衝突時の処理もしていないので、左上が空いた弧の様な形の時に割れてしまう
labeling
この辺はまたの機会に。

(more…)

Adobe AIRの開発環境を整えて、カメラで撮影してJPEGで保存するソフトを作った

2008 年 1 月 12 日 土曜日

AIRを使うと、flash.filesystemやflash.desktopなどのデスクトップアプリ用のクラス群が使えるようになるので、やってみた。

Air beta3で開発する環境を作って、前からやってみたかった
・半透明で変な形をしたウィンドウ
・USBカメラで撮影してJPEGにエンコードしてファイル出力
を作った。

撮影した写真はプログラムと同じフォルダに保存される。

できたもの => CameraSaveJpeg.air (Adobe AIR beta3)Archive

Air app
なお、半透明ウィンドウにするとスクリーンショットに写らなくなるので、デジカメで撮った。

■開発環境を整える
Adobe Labs - Downloads: Adobe AIR
AIRの実行環境

AIR:Flash CS3 Professional Update - Adobe Labs
Japaneseを選んでインストール

Jinten Blog » Blog Archive » FlashDevelop Beta5
FlashDevelp3.0 Beta5で、AIRとmx系クラスのコード補完を有効にする方法
[Project]→[Properties]→[Compiler Options]→[Intrinsic Libraries]に

Library\AS3\frameworks\Flex3
Library\AS3\frameworks\AIR

を追加する

で、普通にFlashDevelopでFlash IDE用のプロジェクトを作成。
さらにFlashCS3からもAIRプロジェクトを作成。FlashDevelopと同じフォルダを指定する。

Flex3.0のコンパイラはとりあえず必要ない。

■証明書を作る
AIR Beta2でWEBCAMの画像をjpgに保存するサンプル - hatayanlog
が詳しい。AIR Beta2から証明書を作らないとならなくなった。

(more…)

AS3 - BitmapMirror.asでYouTubeを鏡写しにする

2007 年 9 月 30 日 日曜日

右下の「Load」を押して再生。

Source Code (Flash CS3 / AS3)

土善開発合宿(ゆーすけべー日記: 奥出研’07秋合宿@土善旅館に部外者(OB)の開発合宿も兼ねて参入してきた)で作ってたBitmapMirror.asを公開しておきます。

宴会直前に到着したのであんまり時間がなかったけど、今回やったことは3つ
1.YouTubeのビデオ(flv)をGoogleVideo経由で取得して
2.AS3のBitmapDataとして扱って
3.鏡面反射させる

ビデオはこれを読み込んでいます。ひゃあ゛ああああうまい゛いいいいい

■1.YouTubeのビデオをGoogleVideo経由で取得する
数ヶ月前にGoogleに買収されて以来、
http://www.youtube.com/watch?v=YRY0M5cgDG8
のビデオは
http://cache.googlevideo.com/get_video?video_id=YRY0M5cgDG8
から取れる様になりました。
以前はWebService::YouTube使って
スクレイピングしなければならなかったけど、素直になった。

(more…)

Flash CS3 - 背景差分法

2007 年 9 月 4 日 火曜日

昨日Flash CS3を買ったので、さっそくAS3でやってみた。

自分で1からBitmapDataクラスを使うのは初めてだったけどprocessingやってたお陰ですぐわかった。

一旦カメラの前からどいて、Save Backgroundボタンを押してみてください

うまくいくとこうなってるはず
BackgroundSubtraction

SourceCode (Flash CS3 / AS3)

(more…)