CALENDAR

2010年9月
« 7月    
 12345
6789101112
13141516171819
20212223242526
27282930  

CATEGORIES

ARCHIVES

あわせて読みたい

  • LOADING...

as3 + animation chap04 スプレー

チャプター04 までやっとこ読んだ。

会社始まったらなかなか読めない!

今回は、Bitmap うんぬん。

サンプルに1行足したら、なんだか面白い効果をゲットした!

画面をクリックするとモコモコしたスプレーに。
Chap04_spray

なんだっけなーこれ。

昔あったんだよなぁ。ドライヤーあてるとこんな感じになるヤツ。

以下、ソース。
Chap04_spray

サンプルにDropShadowをつけただけ(笑
面白いなー。Bitmap。

as3 + animation chap03 三角関数

ActionScript 3.0 アニメーションを読んでるメモ。

チャプター3。

簡単な三角関数について。
でも、予想以上に忘れてらー。

サイン, コサイン, タンジェント,
アークサイン, アークコサイン, アークタンジェント,
ピタゴラスの定理。

cos は、基本的に x の位置を示し、sin は y の位置を示す。
sin = y / r
cos = x / r

要は、比率。

ピタゴラスの定理は、a^2 + b^2 = c^2
2点間の距離を出すのに便利。

Chap03_Test

以下、ソース。

Ball.as

Chap03_Test.as

Box2D 2.0.1 + Video + Camera + AS3 完結版

Box2D と video, camera ついでに as3corelib を使って png で保存までやってみたメモ。

前回のメモ

・操作方法
WEBカメラ必須。
Shoot ボタンを押すとキャプチャ画像が出てきてころころする。
キャプチャの上限は20枚。
キャプチャ画像にマウスをあわせるとぼよんとする。

ぼよんとしたままクリックするとプレビューする。
プレビューの Save ボタンを押すと PNG 画像として保存する。 
プレビューの Close ボタンを押すとプレビューがとじる。
とじずにキャプチャぼよんをクリックするとプレビューが切り替わる。

CameraBox-v2 – S size

下のリンクは、ラージサイズ版。こないだのよりちょっとでかくなってる。

CameraBox-v2 – L size

ソースは、量がむだに多くなってしまったので、ZIPダウンロードで。
欲しい方がいたら、ご自由にどうぞ。あんまりコメント書いてませんが……
あとライブラリは、ZIP に含めておりません。
(使用ライブラリ : box2d-2.0.1, as3corelib-90

CameraBox-v2.zip

しかし、久々に夢中でコーディングしたかもしれない(笑
なんだかつくっててけっこう楽しかったしなー。

つぎはなにをしようかなー。

Box2D 2.0.1 + Video + Camera + AS3

ActionScript 3.0 版の Box2D 2.0.1 と video camera を使ってみたメモ。

正直、試したいことの半分ぐらいしかできてない。

けど、まあ中間メモ的な感じ。

WEBカメラが必須。
Shoot ボタンを押すと写真になってポツポツ降る。
上限は20枚。

CameraBox – M size

下のは、もうちょっと大きなラージサイズ版。

CameraBox – L size

いやーしかし、動きがあるだけでも、なかなか楽しいかも。

もうちょっとだけ、がんばってみよう。

続き。

Box2D 2.0.1 + AS3

ActionScript 3.0 版の Box2D 2.0.1 を弄くったメモ。

単純な機能を使ったもの。
マウス左ドラッグで、オブジェクトをぐにぐに操作。
スペースキーで、ボールが増える。
Rキーで、リセット。

少しハマったのが、ワールドの領域。
1 = 1m という定義で、0.1m – 10m(缶からバスまで)で調節されている模様。

Box2D Units
なので、オブジェクトを大きく設定しすぎたりするとパフォーマンスが落ちるそうな。

以下、失敗版とソース。
FallBall-failure
FallBall-failure.as

ボールを 20px = 20m やら床を 640px = 640m で作成してた。
重力 10 だと遅すぎるのはなぜと思いつつ 300 にしてみたり。
とてもまともとはいえない有様。

そこで、描画サイズはそのまま。判定サイズを 1/30 として作成しなおしたのが、こちら。
FallBall

以下、ソース。
FallBall.as

とてもスムーズに動いた。
判定サイズを 1/30 にしたことで、衝突結果の位置も 1/30 されてしまうので、表示位置は x 30 して対応。
これでなにかゲームを作ってみようかなぁ。

Papervision3D 2.0 beta + BoundCube3D

Papervision3D 2.0 beta をちょいちょい弄ったメモ。

とても単純なもの。

画面をクリックするとキューブが跳ねたりくるくるする。
BoundCube3D

意外とすんなりキューブが出てびっくり。
もっと苦労するかと思ったら、こんなに簡単だったとわ・・・。

次やるときは、エフェクト関係を弄ってみよう。

以下、ソース。一筆書き。
BoundCube3D.as

AS3 + Socket + セキュリティエラー

ActionScript3.0 の Socket を使用したアプリ作ってたらこんな問題にぶち当たったメモ。

Error #2044: ハンドルされていない SecurityErrorEvent : text=Error #2048: セキュリティサンドボックス侵害

Flex Builderのデバッガやローカルからの実行なら起こらないっぽい問題。

色々調べてみると

crossdomain.xml といったポリシーファイルを作成しなければいけないとのこと。

そして Socket 接続する前に Security. loadPolicyFile( “http://ドメイン/crossdomain.xml” ) を呼び出して、そのポリシーファイルを読み込まなければならない。

・・・との事だったのだが、せっせと置いて呼び出してもうんともすんとも言やしない。

これはどうしたものか・・・と悩みつつ調べていたら、どうやら最近セキュリティー系のアップデートがかかって Socket を使う場合、↑では駄目になったらしい。

今までの話はいったんなかったことにして

どうすれば良いのかというと。

1.Flashアプリが、843ポートに接続してくるのを待ち受ける。
2.<policy-file-request/> 文字列を投げてくるので、受け取る。
3.<policy-file-request/> 文字列を受け取ったら、ポリシーファイルを投げ返す。

以上。

そんな常駐アプリをつくればよい。
しかし、自分で作らなくても、なんとすでにAdobeの人が作成してくれている。

こちらに。

↑からダウンロードしてきたファイルの中で使ったものは、

Standalone/flashpolicyd.pl
flashpolicy.xml

の2個。

とりあえず flashpolicyd.pl を cp ../ して
flashpolicy.xml を下記のように書き換えた。

<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
<site-control permitted-cross-domain-policies="all"/>
<allow-access-from domain="*" to-ports="*" />
</cross-domain-policy>

全部おkっぽい仕様(テスト用)

そして実行。

sudo ./flashpolicyd.pl --file=flashpolicy.xml

とりあえずこれで試してみたら、無事に socket 通信できた。
しかしめんどくさ(笑
まぁこれから弄くりたおしつつ理解を深めていこうかな。

追記 2008-05-09

Flashアプリは、843ポートにまず要求を送り、そこで返答がなければ、接続先ポートに要求を送る。さらにそこで返答がなければ、接続に失敗する。

要求を843ポートで受けたくない場合は、接続先ポートで要求を受けてポリシーファイルを返してやると、うまく行く。

参考[猫とか2 Flash ソケットポリシーへの対応]

Socket + AIR + ActionScript 3.0 + 2

ActionScript3.0 の Socket を使ってみたとき、接続に失敗したときの処理が分からなかったんだけど、やっと分かった。

try catch でやるのかなーと思ってたけど、どうやら違ってイベントをとらえるらしい。

socket.addEventListener( SecurityErrorEvent.SECURITY_ERROR, onSecurtyError );
socket.addEventListener( IOErrorEvent.IO_ERROR, onIOError );

↑こんな感じで。

◇サンプルソース
client_air.as

いままでサーバがないと不快なエラーメッセージがポップアップされていたけど、テキストで表示されるようになってスッキリした。

いやえがったえがったー。

client_air.air.zip

Socket + AIR + ActionScript 3.0

adobe AIR が正式になったと聞いてさっそく弄くってみた。

とりあえず通信したかったので、Socketを使ったエコークライアント。
接続先は、先日のlibeventを使ったサーバへ。

◇サンプルソース
client_air.as

client_air-app.xml.html

いやーブラウザを起動せずともソケット通信できるflashアプリが作れるとは・・・。
それがAIRなんだから当たり前だけど、ちょっと感動した。

参考:ん・ぱか工房

ActionScript 3.0 + DataGrid もろもろ

はてさて、ActionScript 3.0。

今回は、DataGrid とかいう HTML でいうテーブルみたいなやつを弄ってみた。

DataGrid に画像を表示させてみたり、Grid クリックでポップアップさせたり。

しかし、AS3 若干慣れてきたけど、まだいまいちつかめないんだよなー。
慣れるしかないかなーこれ。

以下、サンプル&メモ

grid.html

右クリックでソース表示。

grid.php

grid.mxml

mxml で書けるものを ActionScript 化している今日この頃。

こっちのが何かと柔軟性がある気がするんだよねー。
気のせいか。