Away3D練習9 Wonderflサーバに置いた画像をPlaneのテクスチャとして使用
forked from Away3D練習8 プログラム生成画像をPlaneのテクスチャとして使用 (diff: 97)
ActionScript3 source code
/**
* Copyright siouxcitizen ( http://wonderfl.net/user/siouxcitizen )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/izel
*/
// forked from siouxcitizen's Away3D練習8 プログラム生成画像をPlaneのテクスチャとして使用
// forked from siouxcitizen's Away3D練習7 テキストをビットマップとしてPlaneのテクスチャに使用
// forked from siouxcitizen's Away3D練習6 Torus表示
// forked from siouxcitizen's Away3D練習5 Shading&Phong Color MaterialでCone表示
// forked from siouxcitizen's Away3D練習4 3種類のMaterialでCube表示
// forked from siouxcitizen's Away3D練習3 3種類のMaterialでSphere表示
// forked from siouxcitizen's Away3D練習2 3種類のMaterialでPlane表示
// forked from siouxcitizen's Away3D練習1 Plane表示
// forked from siouxcitizen's forked from: Away3Dの練習
// forked from ser1zw's Away3Dの練習
//
//貼り付けたテクスチャ用ビットマップが上下逆になってるような。。。
//以下、参考にした自分作成の昔のコードと、そのコード作成時に参考にさせていただいたサイト&コード
//
//自分作成の昔のコード
//http://wonderfl.net/c/6JU7
//
//[Papervision3D]BitmapMaterialの練習
//http://wonderfl.net/c/9uIG
//
package {
import flash.display.Sprite;
import flash.events.Event;
import flash.display.Loader;
import flash.system.LoaderContext;
import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.display.Bitmap;
import flash.display.BitmapData;
import away3d.containers.View3D;
import away3d.primitives.Plane;
import away3d.materials.BitmapMaterial;
import away3d.materials.BitmapFileMaterial;
[SWF(frameRate="60", backgroundColor="#ffffff")]
public class Away3DTest extends Sprite {
private var view:View3D;
private var plane:Plane;
private var bmp:Bitmap;
private var bmd:BitmapData;
private var loader:Loader;
public function Away3DTest() {
//zaku画像
//var url:String = "http://assets.wonderfl.net/images/related_images/7/7b/7be2/7be290bce731b60e8bceffb7f1bee308b342ad28"
//Wizard画像
//var url:String = "http://assets.wonderfl.net/images/related_images/1/19/19c0/19c0967e02f10579880511d29d725a4a9f983f1a"
//sla画像
var url:String = "http://assets.wonderfl.net/images/related_images/e/e1/e12b/e12b4d301954b19d91c96df4bbf2eaf5fc82f726"
var urlReq:URLRequest = new URLRequest(url);
loader = new Loader();
loader.load(urlReq, new LoaderContext(true));
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete);
}
private function onComplete(e:Event):void {
bmd = new BitmapData(loader.width, loader.height, true, 0x000000);
bmd.draw(loader);
view = new View3D();
view.x = stage.stageWidth >> 1;
view.y = stage.stageHeight >> 1;
addChild(view);
//ビットマップからPlane用テクスチャを作成
var bitmapMaterial:BitmapMaterial = new BitmapMaterial(bmd);
plane = new Plane({width: 200, height: 200});
plane.material = bitmapMaterial;
plane.bothsides = true;
plane.rotationX = -90;
view.scene.addChild(plane);
addEventListener(Event.ENTER_FRAME, onEnterFrame);
}
private function onEnterFrame(e:Event):void {
plane.rotationX = -(stage.mouseY - (stage.stageHeight >> 1));
plane.rotationY = stage.mouseX - (stage.stageWidth >> 1);
view.render();
}
}
}
