奶綠茶第一本 Flash 書籍上市啦 博客來書籍館 Flash 3D 特效宅急便 - 商業範例隨學隨 把我對 Flash 的研究與熱愛, 全寫在其中 本書的前幾章, 特別安排 ActionScript3.0 的許多範例 好讓你一步步瞭解 as2 和 as3 的差別 再安排製作動畫不可缺少的 Tweener 類別和一些常用的數學動畫公式 最後當然就來到本書的重點 PV3D 啦 從 PV3D 的原理, 基本架構一點一點的介紹 再透過許多實用的範例, 從中瞭解 PV3D 製作的小技巧 有任何書籍相關的問題, 也請不吝指教 感謝一路走來, 幫助過我的前輩們, 邦邦、Ticore、神魂、Maso、Erin 旗標出版社 小編 Bready 米蘭數位所有夥伴 米蘭數位ActionScript Team:Jason,Ash,Mark 本書大鋼: 1.ActionScript3.0概論 分析AS3的概念與語法, 從基本的滑鼠事件、外部載入、氣泡事件介紹起 適合熟悉AS2, 想轉戰AS3的人員。 2.程式碼製作動畫 使用簡單的數學公式, 套用到程式裡, 脫離死版的影格動畫。 3.製作動畫的好夥伴:Tweener 除了套用數學公式外, Tweener類別也能加速我們開發出更多的動畫效果, 不需辛辛苦苦的找公式。 4.自定類別 AS3的精神, 是在於強大的物件導向, 當然也要熟悉類別的寫法與使用。 5.Flash3D - Papervison3D 如果在Flash玩轉3D效果, PV3D是最好學, 最快上手的3D Flash Engine, 從簡單的3D概念, PV3D類別, 事件等。 6 漫天飛舞的Paper3DWorld效果 7 迷你旋轉木馬式秀圖效果 8 最經典! CoverFlow 圖像展示效果 9 天旋地轉 TiltViewer效果 10 FlatWall3D電視牆效果 11 經典旋轉木馬 Carousel3D 秀圖效果 12 光源材質展示與簡易型的方塊彈跳效果 13 載入外部3D模型與動畫 14 超立體旋轉九宮格 Box3DWorld 15 空間感與透明感兼具的 SpaceGallery 16 螺旋式 SpiralCarouse 影像展示 17 Flash10 3D功能 18 Flash效...
留言
裝了mxp後重啟Flash還是沒反應...
找不到Progression Project的面版...?
請教一下奶老師...感激...
我們的作業系統不支援日文版的
拖曳DAE和上方的拖曳物件
原理是一樣的
只要把Sphere換成DAE即可
var _wireMat:ColorMaterial = new ColorMaterial();
_wireMat.interactive = true;
請問我要怎麼打開外部DAE檔案裡面的材質互動?
然後讓他材質自動貼上嗎
這樣要開啟interactive就比較麻煩
但可以改成這樣試試
一樣new DAE
但在load時,自己貼上MaterialsList
這樣就可以在自己宣告的材質上開啟該屬性
dae.load("dae/miniBottle.dae",new MaterialsList({all:new BitmapFileMaterial("dae/miniBottle.jpg")}));
所以我用您書中第13章裡面的範例下去改,
那麼我要打開材質的互動這樣子做是對的嗎?
dae.getMaterialByName("bottleMaterial").interactive = true;
var _bmpMit:BitmapFileMaterial = new BitmapFileMaterial("xxx.jpg",true);
_bmpMit.interactive = true;
dae.load("dae/miniBottle.dae",new MaterialsList({all:_bmpMit)}));
我終於成功可以跟DAE檔案互動了!!
但是如果有很多個材質的話,
就像是下一個牛奶盒範例檔案,
var ml:MaterialsList = new MaterialsList({ BodyMaterial :new BitmapFileMaterial("milkmidiBOX/body.jpg"), TopMaterial :new BitmapFileMaterial("milkmidiBOX/top.jpg"), MediumMaterial :new BitmapFileMaterial("milkmidiBOX/medium.jpg"), downMaterial :new BitmapFileMaterial("milkmidiBOX/down.jpg")
})
dae.load("milkmidiBOX/milkmidiBOX_Ani.dae",ml);
有那麼多材質的話請問要怎麼打開呢?
只是本來的new 物件
用一個變數來接
開啟interactive屬性
再放到MaterialsList裡即可
var TopMaterial:BitmapFileMaterial = new BitmapFileMaterial("milkmidiBOX/top.jpg",true);
var MediumMaterial:BitmapFileMaterial = new BitmapFileMaterial("milkmidiBOX/medium.jpg",true);
var downMaterial:BitmapFileMaterial = new BitmapFileMaterial("milkmidiBOX/down.jpg",true); BodyMaterial.interactive = true;
TopMaterial.interactive = true;
MediumMaterial.interactive = true;
downMaterial.interactive = true;
dae.load("milkmidiBOX/milkmidiBOX.dae",new MaterialsList({Body:BodyMaterial, Top:TopMaterial, Medium:MediumMaterial, down:downMaterial}));
是這樣子嗎?
dae.getChildByName("COLLADA_Scene").getChildByName("Group01").addEventListener(InteractiveScene3DEvent.OBJECT_OVER, daeOverHandler);
可是我沒有辦法互動是因為Group01嗎?
這是您範例中的milkmidiBOX.dae檔案
去把他底下的子物件都打開就成功的互動了!!
不過有好多的子物件
Object01
Object02
Object03
Box01
不能直接用上一層Group01打開就好了嗎?
一定要偵聽對的物件才行。
不過有二個方法可以參考看看
1.dae.getChildByName("xxx",true)
第二參數開成true
這樣dae就會自動幫你用遞迴的方法,找到該名稱的物件,這樣就不用自己一層一層的找
2.改用Viewport Layer來製作
可以參考這篇
http://milkmidi.blogspot.com/2009/03/pv3dbuttonmode.html
是這個樣子使用嗎?
不太懂您的意思!
是的,getChildByName的第二個參數是遞迴,
他會自已往下抓
我根據了你在此篇的範例,
然後將程式碼作修改結果既然出現了此錯誤。。。
1020: 標示為 override 的方法必須覆寫另一個方法。
然後我在你發表書的那篇文章看到解決方法是去看有沒有重複安裝PV3D所以我去檢查了一下我只有一個PV3DCLASS....請問該如何解決呢??
然後在你的書中的5-8節有說到InteractiveScene3DEvent而裡面又有一些3D專用的類別屬性...那為什麼你在此篇文章用的事件又是MouseEvent呢???
SingleRender()和stageRendering()還有super()有點不懂可以請大大說明一下嗎??
錯誤1:
C:\Users\hank\Desktop\3D\PV3D\Primitives_Cube\Primitives_Cube.as,字行 2 1172: 找不到定義 com.bit101.components:PushButton。
錯誤2:
C:\Users\hank\Desktop\3D\PV3D\Primitives_Cube\Primitives_Cube.as,字行 32 1180: 呼叫可能未定義的方法 PushButton。
你還需要再下載
com.bit101.components:PushButton
的類別才能發怖
_bmpMit.interactive = true;
dae.load("dae/miniBottle.dae",new MaterialsList({all:_bmpMit)}));這是需要加在哪一段呢??
private function addDAE():void {
這一段嗎??還有如果需要多個模組匯入指需要重複載入指令就好了嗎??
_bmpMit.interactive = true;
dae.load("dae/miniBottle.dae",new MaterialsList({all:_bmpMit)}));
這段我匯入造成錯誤C:\Users\hank\Desktop\3D\PV3D\Primitives_Cube\Primitives_Cube.as,字行 70 1084: 語法錯誤:rightbrace 必須在 rightparen 之前。
我該如何ORZ對不起一直問你問題
private function addDAE():void {
//====================
dae = new DAE(true, "dae", true);
//建構DAE類別。
/*new DAE(
是否自動播放動畫:Boolean ,
實體名稱:String ,
是否循環播放動畫:Boolean
)*/
var _bmpMit:BitmapFileMaterial = new BitmapFileMaterial("dae/miniBottle.jpg",true);
_bmpMit.interactive = true;
dae.load("dae/miniBottle.dae",new MaterialsList({all:_bmpMit}));
//載入dae模型。
//dae.load("dae/miniBottleAni.dae");
//動畫格式的dae模型。
//dae.scale = 10;
//使用DAE類別載入模型時, 通常模型會很小一個
//我們將其大小放大10倍。
scene.addChild(dae);
//=====================
//var _dae:Sphere = new Sphere(new ColorMaterial(Math.random()*0xffffff));
//scene.addChild(_dae);
var _layer:ViewportLayer = dae.createViewportLayer(viewport, false);
_layer.addEventListener(MouseEvent.MOUSE_DOWN , layerMouseDownHandler);
}