使用flex 结合sandy 引擎来创造一些3d物体,感觉还是不错。
制作步骤:
把sandy 引擎相关的文件导入相关的包到flex到project里面去。
初始化的时候,我们首先在场景里面拖动一个Canvas 容器,在容器里面添加子组件去
注意:
scenne=new Scene3D("scene1", sprite,camera,root);
第二个参数,在使用flash ide 开发的时候,我们只是用this来指定第二个参数。 因为this 代表sprite类对象的引用
scenne=new Scene3D("scene1",this,camera,root);//创建带摄像机的场景
对比一下使用ide创建一个立方体的:
区别在于上面所学到sprite类的对象。
要在flex里面显示我们创建的立方体。首先要指定一个sprite对象
如果不是就会出现以下错误:
强制转换类型失败:无法将 flash.display::Sprite@1726041 转换为 mx.core.IUIComponent。
因为 mx:Application 本身就是一个组件,如果在使用addChild 创建子项,也就是
var sprite:Sprite=new Sprite();
addChild( sprite);
sprite对象已经在Application 组件里面了 ,但是flash.display sprite对象无法 添加到Application 里面去
为了显示我们所创建的立方体,我们自己定义了一组件,并将sprite对象添加到容器里面去作为他的子项目
而通过Canvas容器,把自己创建的组件也添加到容器里面作为父级容器。
var ui:UIComponent=new UIComponent();//创建一个组件
var sprite:Sprite=new Sprite();
ui.addChild( sprite);
canvas.addChild(ui);//添加容器
Canvas容器---> ui---->--sprite
这样 显示的效果就出来了