AS2で3D


AS3がメジャーになりつつある昨今、AS2で3Dやります。ナカムラです。
検索するとSandyというFlashで3D処理を扱うためのオープンソースのライブラリが便利だそうで、
取りかかってみる。
とりあえずSandyのパッケージをダウンロード
・・・

さてここから。。
検索してもちょっと前の記事でSandyが紹介されているものしか引っかからず、
以前のバージョンのSandy1.1で紹介されている記事ばかり。
現在配布されている1.2とはすこし内容が異なっているようで、苦戦。。

なかなか以前のバージョンを見つけられず、何とか以前のバージョン1.1をダウンロード。

ようやく回転させることが出来ました。
(バージョンを探すのに一番時間かかった・・)

[SWF]http://knap.jp/blog/swf/sample_fla.swf, 550, 400[/SWF]

import flash.display.BitmapData;
import sandy.util.DistortImage;

var clip:MovieClip = createEmptyMovieClip(“holder”,100);
var di:DistortImage = new DistortImage(clip,mc, 2, 2);

var videoWidth : Number = 200;
var videoHeight : Number = 300;
var rotSpeed : Number = 0;

function onEnterFrame():Void {
di.setTransform(pt0._x, pt0._y, pt1._x, pt1._y, pt2._x, pt2._y, pt3._x, pt3._y);
di.texture.draw(video);

rotSpeed += 10;
pt0._x = videoWidth / 2.7 * (Math.sin(Math.PI * rotSpeed / 180)) + Stage.width / 2;
pt0._y = -30 * (Math.cos(Math.PI * rotSpeed / 180)) + 70;
pt1._x = -videoWidth / 2.7 * (Math.sin(Math.PI * rotSpeed / 180)) + Stage.width / 2;
pt1._y = 30 * (Math.cos(Math.PI * rotSpeed / 180)) + 70;
pt2._x = -videoWidth / 2.7 * (Math.sin(Math.PI * rotSpeed / 180)) + Stage.width / 2;
pt2._y = -30 * (Math.cos(Math.PI * rotSpeed / 180)) + 310;
pt3._x = videoWidth / 2.7 * (Math.sin(Math.PI * rotSpeed / 180)) + Stage.width / 2;
pt3._y = 30 * (Math.cos(Math.PI * rotSpeed / 180)) + 310;
}

Scroll to top