將SWF讀入PV3D的plane或cube face

10 views
Skip to first unread message

小白

unread,
Jan 17, 2010, 10:32:40 PM1/17/10
to 台灣 Adobe 使用者俱樂部
大家好!想請教大家
我想將外部SWF檔讀入PV3D的plane或cube face
研究了好幾天,
找了很多資料還是研究不出來,
想請教大家該如何做呢?

我目前的程式碼如下:

package{

import flash.display.Loader;
import flash.display.Sprite;
import flash.display.MovieClip;
import flash.events.Event;
import flash.net.URLRequest;

import org.papervision3d.view.Viewport3D;
import org.papervision3d.scenes.Scene3D;
import org.papervision3d.cameras.Camera3D;
import org.papervision3d.materials.*;
import org.papervision3d.objects.primitives.Plane;
import org.papervision3d.render.BasicRenderEngine;

public class PV3DMovieAssetMaterial extends Sprite
{
private var viewport: Viewport3D;
private var scene: Scene3D;
private var camera: Camera3D;
private var ml: MovieMaterial;
private var primitive1: Plane;
private var renderer: BasicRenderEngine;

public function PV3DMovieAssetMaterial():void
{
viewport = new Viewport3D(550, 400, false, true);
addChild(viewport);
scene = new Scene3D();
camera = new Camera3D();
renderer = new BasicRenderEngine();

var ldr:Loader = new Loader();
ldr.load(new URLRequest("loadMe.swf"));
var ml:MovieMaterial = new MovieMaterial(MovieClip(ldr.content),
true);

ml.smooth = true;
ml.animated = true;
ml.doubleSided = true;

primitive1 = new Plane(ml, 500, 500, 3, 3);
scene.addChild(primitive1);

addEventListener(Event.ENTER_FRAME, onEnterFrame);

function onEnterFrame(e:Event):void
{
primitive1.rotationY += 2;
renderer.renderScene(scene, camera, viewport);
}
}
}
}

小白

unread,
Jan 18, 2010, 11:05:36 PM1/18/10
to 台灣 Adobe 使用者俱樂部
我將 var ml:MovieMaterial = new MovieMaterial(MovieClip(ldr.content),
true);
改為 var ml:MovieMaterial = new MovieMaterial(ldr, true);
就可以了!
不過旋轉的軸心變的很怪!

Ben Chang

unread,
Jan 19, 2010, 1:52:31 AM1/19/10
to au...@googlegroups.com
看你的程式碼,我猜測是
var ml:MovieMaterial = new MovieMaterial(MovieClip(ldr.content), true);
這句,使用的時機不對,

因為你才剛使用了 ldr.load(new URLRequest("loadMe.swf"));,
這時候應該還沒載入完成,就想要取用 ldr.content,
所以大概無法順利取用這個 swf 當作材質吧

我建議你加上事件監聽,確認 swf 已經載入完成,再設定為材質 試試看




2010/1/19 小白 <3dg...@gmail.com>
--
您收到此郵件,是因為您訂閱了 Google 網上論壇的「台灣 Adobe 使用者俱樂部 」群組。
如要在此群組張貼留言,請寄電子郵件至 au...@googlegroups.com
如要取消訂閱此群組,請寄電子郵件至 augtw-un...@googlegroups.com
如需更多選項,請造訪此群
組:http://groups.google.com.tw/group/augtw?hl=zh-TW?hl=zh-TW

小白

unread,
Jan 20, 2010, 2:57:25 AM1/20/10
to 台灣 Adobe 使用者俱樂部
我以為是型別有問題呢!?
Reply all
Reply to author
Forward
0 new messages