トルネード
Posted by ton in AS3, Flash, 作ってみた on 02 9th, 2009| icon3No Comments »

っぽいものを作ってみたw

ちょっとショートコーディングしてみようと思ってがんばった
なんかずるいとこもあるかもしれないけど、一応15行
もうちょっと短くなる?

このエントリーを含むはてなブックマークはてなブックマーク - トルネード この記事をクリップ!Livedoorクリップ - トルネード BuzzurlにブックマークBuzzurlにブックマーク FC2ブックマークへ追加 Bookmark this on Delicious Digg This
FP10で3D (2)
Posted by ton in AS3, Flash on 02 7th, 2009| icon3No Comments »

前回はDisplayObjectクラスのプロパティをちょこっといじっただけだったので、
今回はPerspectiveProjectionクラスをいじってみます

PerspectiveProjectionクラスってのは遠近法を簡単に適応するクラスらしい
このクラスのプロパティは3つ

・fieldOfView
Number
0 < fieldOfView < 180
遠近法による変形と歪みの強さを決めるプロパティ
値を大きくすると魚眼レンズみたいになる

・focalLength
Number
焦点距離を表すプロパティ
視点の原点(0,0,0)とz軸上のオブジェクトとの間の距離を表す
値が大きいと望遠鏡のように、小さいと魚眼レンズのようになる

・projectionCenter
Point
遠近法の消失点を表すプロパティ

fieldOfViewとfocalLengthは互いに依存してるので片方変更するともう片方も変更するらしい
fieldOfViewを変更したときのfocalLengthは次の式で計算される
focalLength = stageWidth/2 * (cos(fieldOfView/2) / sin(fieldOfView/2)

デフォルトでは次の値になる
• fieldOfView:55
• perspectiveCenter:stagewidth/2, stageHeight/2
• focalLength:stageWidth/ 2 * ( cos(fieldOfView/2) / sin(fieldOfView/2) )

とりあえずPerspectiveProjectionを使ってなんか作ってみる
wonderflのほうが公開するの楽なんでwonderflに書きますw

長細い線みたいなのがビュンビュン飛んでるけど、実は正方形
PerspectiveProjectionのfieldOfViewの値を大きくして魚眼レンズのようにしている
projectionCenterは常にマウスの座標になるようにしている
これだけでおもしろくなるもんだなぁ

次はMatrix3Dを使ってみる

このエントリーを含むはてなブックマークはてなブックマーク - FP10で3D (2) この記事をクリップ!Livedoorクリップ - FP10で3D (2) BuzzurlにブックマークBuzzurlにブックマーク FC2ブックマークへ追加 Bookmark this on Delicious Digg This
FP10で3D (1)
Posted by ton in AS3, Flash, 作ってみた on 02 7th, 2009| icon3No Comments »

せっかくFP10で3Dの概念が追加されたんだから3Dやってみようってことで

FP10で追加された3Dの機能

・flash.display.DisplayObject クラス
z プロパティやscaleZ
rotationX,rotationY,rotationZなどの各軸の回転角
3次元座標を2次元に変換するlocal3DToGlobal() メソッド が追加された

・flash.geom.Vector3D クラス
3次元座標を格納するクラス
回転角も入れたりできる
※Vectorクラスとは違います Vectorクラスはすべてのエレメントが同じデータ型を持つ配列で、Vector3Dクラスは3次元空間のベクトルを表すクラスです

・flash.geom.Matrix3D クラス
回転、拡大、縮小、平行移動などの3Dの変換を行うクラス

・flash.geom.PerspectiveProjection クラス
遠近法に基づく変形を行うクラス

とりあえずくるくる回転するだけの物を作ってみた

Flash Player 10 にしてください


package {
import flash.display.Sprite;
import flash.events.Event;

public class Study3d1 extends Sprite {
private const SIZE:int = 100;
private const W:int = stage.stageWidth;
private const H:int = stage.stageHeight;
private var mc:Sprite;
public function Study3d1():void {
mc = new Sprite();
mc.graphics.beginFill(0x0077ff);
mc.graphics.drawRect(-SIZE/2, -SIZE/2, SIZE, SIZE);
mc.graphics.endFill();
mc.x = W / 2;
mc.y = H / 2;
addChild(mc);

addEventListener(Event.ENTER_FRAME, onEnterFrameHandler);
}

private function onEnterFrameHandler(e:Event):void {
mc.rotationX = H / 2 - mouseY;
mc.rotationY = W / 2 - mouseX;
}
}
}

おー回ってる回ってる
次はもちっと複雑な動きをする物を作ってみたいと思います

このエントリーを含むはてなブックマークはてなブックマーク - FP10で3D (1) この記事をクリップ!Livedoorクリップ - FP10で3D (1) BuzzurlにブックマークBuzzurlにブックマーク FC2ブックマークへ追加 Bookmark this on Delicious Digg This
The 25-Line ActionScript Contest
Posted by ton in AS3, Flash on 01 23rd, 2009| icon3No Comments »

The 25-Line ActionScript Contest
これすごい
25行でこんなことができるのか!
ショートコーディングには興味あるけど読みにくいのはちょっとつらいw

ちょっとした思いつきでJanuary 2009 Finalists! Entry001のコードをちょっとばかし改造
マトリックスっぽくしてみた
ちなみにwebカメラがないと動かないので持ってない人は3秒で買ってきてください

グローフィルターなし

グローフィルターあり

やっぱグローフィルターありのほうがマトリックスっぽい?
重いのが欠点

25行でなんか作ってみたいなー
アイディアがまったく思い浮かばない

あと、ブログのタイトルにタグをつけるのをやめた。理由はめんどくさいから。

このエントリーを含むはてなブックマークはてなブックマーク - The 25-Line ActionScript Contest この記事をクリップ!Livedoorクリップ - The 25-Line ActionScript Contest BuzzurlにブックマークBuzzurlにブックマーク FC2ブックマークへ追加 Bookmark this on Delicious Digg This
Vectorのunshiftがおかしい
Posted by ton in AS3, Flash on 01 18th, 2009| icon3No Comments »

某掲示板でVecoterに適当なオブジェクト型を突っ込んだときの動きがおかしいというのがあったので検証してみた
FlexSDKのバージョンは3.2.0.3958 と 3.2.0.4537
wonderflのFlexSDKバージョンはVersion 3.2.0 build 3794 と書いてある

ついでにwonderflのブログパーツを貼ってみるテスト
(ブログパーツが更新されてflash自体が表示されるようになったけど、今度はソースを載せたい場合はどうすればいいんだろう・・・w)
ソースはブログパーツから飛んでいけば見られます

int、Number型以外は一回目のunshift以降配列の長さが変わってない
でも一つだけある要素の番号が4になっているので最後にunshiftしたものが入っていることになる
上書きしてる?

ためしにもう一つ書いてみた

pushするとちゃんと入っている
その後unshiftするとちゃんと先頭に入って以降ひとつずつずれている
が、配列の長さが変わってないため最後の要素が切り捨てられている
仕様・・・?なわけないな、数値はちゃんとunshiftされてるんだし

バグ報告がすでにされていた

http://bugs.adobe.com/jira/browse/ASC-3620

Created: 06/20/08 02:59 PM・・・・?
こんなバグずっと放置しとくもんなの?

このエントリーを含むはてなブックマークはてなブックマーク - Vectorのunshiftがおかしい この記事をクリップ!Livedoorクリップ - Vectorのunshiftがおかしい BuzzurlにブックマークBuzzurlにブックマーク FC2ブックマークへ追加 Bookmark this on Delicious Digg This

« Previous Entries Next Entries »