Base64 + ということでしたが、.drawがうまくいかないようなので、
wonderFulに張り付けるのをあきらめ、今回はふつーにテクスチャーを貼り付けたいと思います。
もうタイトル関係ないですね。
BitmapMaterialの引数にBitMapDataを指定してやるのがみそですねえ。
bmm.smoothをtrueにすると回転などでおこる画像のぎざぎざがスムーズになるらしいです。
var bmm:BitmapMaterial = new BitmapMaterial(bmp);
bmm.doubleSided = true;
bmm.smooth = true;
_plane = new Plane(bmm, 100, 100, 3, 3);
たぶんこの方法より、BitmapFileMaterialを使った方が外部画像を使用する場合はお得かと思います。
package myproject
{
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.display.Loader;
import flash.display.Sprite;
import flash.events.Event;
import flash.net.URLRequest;
import org.papervision3d.materials.BitmapMaterial;
import org.papervision3d.objects.primitives.Plane;
import org.papervision3d.view.BasicView;
public class Index extends Sprite
{
private var _plane:Plane
public function Index():void
{
var loader:Loader = new Loader();
var urlReq:URLRequest = new URLRequest("img/ramen1.JPG");
if (stage != null) {
loader.load(urlReq);
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeHandler);
}
}
private function completeHandler(e:Event):void
{
e.target.removeEventListener(Event.COMPLETE, completeHandler);
this.addChild(e.target.loader);
var bmp:BitmapData = new BitmapData(100, 100);
bmp.draw(e.target.loader);
var bm:Bitmap = new Bitmap(bmp);
bm.x = 100;
bm.y = 100;
addChild(bm);
var bmm:BitmapMaterial = new BitmapMaterial(bmp);
bmm.doubleSided = true;
bmm.smooth = true;
_plane = new Plane(bmm, 100, 100, 3, 3);
var basicview:BasicView = new BasicView();
basicview.scene.addChild(_plane);
basicview.startRendering();
addEventListener(Event.ENTER_FRAME, enterFrameHandler);
addChild(basicview);
}
private function enterFrameHandler(e:Event):void
{
_plane.rotationX += 2;
}
}
}
Tags: Papervision3d,
Texture