forked from: forked from: [PV3D]外部画像をLoaderを利用して読み込んだ場合の実装方法
forked from forked from: [PV3D]外部画像をLoaderを利用して読み込んだ場合の実装方法 (diff: 75)
just playing JB :) doh! have to wait for material to load before setting UV
ActionScript3 source code
/**
* Copyright JohnBrookes ( http://wonderfl.net/user/JohnBrookes )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/kTLy
*/
// forked from a24's forked from: [PV3D]外部画像をLoaderを利用して読み込んだ場合の実装方法
// forked from clockmaker's [PV3D]外部画像をLoaderを利用して読み込んだ場合の実装方法
//just playing JB :)
// doh! have to wait for material to load before setting UV
package {
import flash.display.*;
import flash.events.*;
import flash.net.*;
import flash.system.*;
import org.papervision3d.events.FileLoadEvent;
import org.papervision3d.materials.*;
import org.papervision3d.objects.primitives.*;
import org.papervision3d.view.*;
import org.papervision3d.objects.DisplayObject3D;
public class Main2 extends BasicView {
private var material:BitmapFileMaterial;
public function Main2():void {
opaqueBackground = 0x0; // 背景を黒くする
// クロスドメイン対策
Security.loadPolicyFile("http://assets.wonderfl.net/crossdomain.xml");
// 画像ファイルのパス
const url:String = "http://assets.wonderfl.net/images/related_images/7/7a/7a1e/7a1e6ef276b0d7da95e79499fbfae10ceee8e9b6";
// マテリアル(テクスチャ)をBitmapFileMaterialとして作成
material = new BitmapFileMaterial(url);
material.addEventListener(FileLoadEvent.LOAD_COMPLETE, imgLoaded);
}
private function imgLoaded(e:FileLoadEvent):void
{
material.doubleSided = true; // 両面にテクスチャを貼る
// material.precise = true; // テクスチャの歪み防止
material.tiled = true;
material.maxU = 0.5;
// 平面を作成
var pivot:DisplayObject3D = new DisplayObject3D();
var plane:Plane = new Plane(material, 300, 600, 2);
plane.x = 150;
plane.rotationY = 180;
var plane2:Plane = new Plane(material, 300, 600, 2);
plane2.x = -150;
var plane3:Plane = new Plane(material, 300, 600, 2);
plane3.z = -150;
plane3.rotationY = -90;
var plane4:Plane = new Plane(material, 300, 600, 2);
plane4.z = 150;
plane4.rotationY = 90;
// 画面を表示
scene.addChild(pivot);
pivot.addChild(plane);
pivot.addChild(plane2);
pivot.addChild(plane3);
pivot.addChild(plane4);
// レンダリング開始
startRendering();
// ついでに回転でもさせておく
addEventListener(Event.ENTER_FRAME, function():void {
pivot.yaw(1);
});
}
}
}
