将模型嵌入swf问题
fc_candle (2011-05-19 17:34:45)
将模型用xml格式嵌入swf后,就无法设置这个模型的viewportlayer的属性,如alpha或者添加滤镜等等,请问一般我们是怎样嵌入模型的呢?
我的代码如下:
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69.
|
package externalModel { import flash.events.Event; import flash.filters.GlowFilter; import org.papervision3d.events.FileLoadEvent; import org.papervision3d.materials.ColorMaterial; import org.papervision3d.materials.WireframeMaterial; import org.papervision3d.materials.utils.MaterialsList; import org.papervision3d.objects.DisplayObject3D; import org.papervision3d.objects.parsers.DAE; import org.papervision3d.view.BasicView; [SWF(width="800", height="600")] public class EmbedModeExample extends BasicView { private var embedModel : DAE; private var loadModel : DAE; public function EmbedModeExample(viewportWidth:Number=640, viewportHeight:Number=480, scaleToStage:Boolean=true, interactive:Boolean=false, cameraType:String="Target") { super(viewportWidth, viewportHeight, scaleToStage, interactive, cameraType); init(); startRendering(); } private function init() : void { var xml : XML = XML(new EmbedClass.MeteoriteData); var materialsList : MaterialsList = new MaterialsList(); materialsList.addMaterial(new ColorMaterial(0x00FF00), "MeteoriteMaterial__0"); embedModel = new DAE(); embedModel.load(xml, materialsList); embedModel.localRotationY = 30; scene.addChild(embedModel);
//这里添加滤镜没用 viewport.getChildLayer(embedModel).filters = [new GlowFilter(0xFF0000)]; loadModel = new DAE(); loadModel.addEventListener(FileLoadEvent.LOAD_COMPLETE, loadComplete); loadModel.load("models/meteorite.DAE", materialsList); } protected function loadComplete(e:FileLoadEvent):void { scene.addChild(loadModel); loadModel.x = 300;
//这里添加滤镜有用 viewport.getChildLayer(loadModel).filters = [new GlowFilter(0xFF0000)]; } override protected function onRenderTick(event:Event=null):void { super.onRenderTick(); } } }
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
|
package externalModel { public class EmbedClass { [Embed(source="../../bin-debug/models/meteorite.DAE", mimeType="application/octet-stream")] public static const MeteoriteData : Class; } } |
|