away3d 搭建(一)

来源:互联网 发布:java 0xff 编辑:程序博客网 时间:2024/06/02 08:03

看了这个视频http://my.ku6.com/watch?v=xx_Rsa3PStylKRPnpbkkqg..#share

终于照抄着实现了away3d的一个Demo。汗颜啊!还参考了这篇大神的博文,感谢http://bbs.9ria.com/thread-89275-1-1.html


第一阶段 准备必要的资源

(1) Flash builder 4.6  下载地址:  http://119.147.150.31/down_group174/M00/05/8E/d5OWH06WuMQAAAAAMij0OHs7D4o4521587/FlashBuilder_4_6_LS10_325268.exe?k=vhVD_rezgW3IaXYYY9o7-g&t=1318522601&u=221.122.119.254@0@clydq4g9&file=FlashBuilder_4_6_LS10_325268.exe
注册机已上传,keygen.rar文件

(2) away3d-core-fp11_4_0_7_gold 这个away3d官网上可以下载  http://away3d.com/images/uploads/releases/away3d-core-fp11_4_0_7_gold.zip


(3) flashPlayer 11  下载完成后名称改为playerglobal.swc,放到文件夹中,路径 Flash Builder安装目录-->sdks-->4.6.0-->frameworks-->libs-->player



第二阶段:配置



(1) 新建的是ActionScript项目,这个也许对大神来说不是一个问题,可是在我动手搭建的时候,遇到的一个大问题就是 package{……}这样的代码往哪里拷贝的问题。

(2) 配置ActionScript编译器,两个重要的地方如图所示 

 


第一个地方是选择你的flashplayer,即选择playerglobal.swc。(注意:使用的版本号是playerglobal.swc的文件夹名称)。

第二个地方,不知道所以然。可以跟【项目文件夹中的index.template.html文件上单击右键,在弹出的快捷菜单中选Open With-->Text Editor打开它,并找到params.allowfullscreen = "true";一行(约在48行),在此行下插入一行:params.wmode="direct";(注意使用英文符号),保存文件。
】这个修改有异曲同工之效。



 下面跟着视频一步步抄袭代码:

第三阶段 源码

 

package{    import away3d.containers.View3D;    import away3d.entities.Mesh;    import away3d.materials.ColorMaterial;    import away3d.primitives.PlaneGeometry;        import flash.display.Sprite;    import flash.events.Event;    import flash.geom.Vector3D;        [SWF(width=640,height=480,frameRate=60)]    public class BreakingApp extends Sprite    {        private var view:View3D;        private var cube:Mesh;        public function BreakingApp()        {            setupScene();        }        private function setupScene():void{            view =new View3D();            addChild(view);                        cube=new Mesh(new PlaneGeometry(),new ColorMaterial(0xff0000));            view.scene.addChild(cube);            view.camera.z=-500;            view.camera.y=300;            view.camera.lookAt(new Vector3D());                        addEventListener(Event.ENTER_FRAME,loop);        }                protected function loop(event:Event):void        {            // TODO Auto-generated method stub            view.render();        }    }}

 

 




第四阶段:转动

cube.rotationY++;




第五阶段 放进图片【 注意:图片的大小(像素必须是2n次方,否则报错:Invalid bitmapData: Width and height must be power of 2 and cannot exceed 2048)】;

 

 图片是随便从网上找的,可以是jpg、png格式,放到工程src目录下。

[Embed(source="1.jpg")]

        private var I1:Class;

        [Embed(source="2.jpg")]

        private var I2:Class;

        [Embed(source="3.jpg")]

        private var I3:Class;

        [Embed(source="4.jpg")]

        private var I4:Class;

        [Embed(source="5.jpg")]

        private var I5:Class;

        [Embed(source="6.jpg")]

        private var I6:Class;


var bct:BitmapCubeTexture=new BitmapCubeTexture(new I1().bitmapData,

                new I2().bitmapData,

                new I3().bitmapData,

                new I4().bitmapData,

                new I5().bitmapData,

                new I6().bitmapData);


运行效果:

 

 








第六阶段:图片响应鼠标事件

hc=new HoverController(view.camera,null,150,10,200);

hc.panAngle=mouseX-320;

            hc.tiltAngle=mouseY-240;

hc.panAngle=mouseX-320;

            hc.tiltAngle=mouseY-240;





运行效果: 













 完整代码:





package{    import away3d.containers.View3D;    import away3d.controllers.HoverController;    import away3d.entities.Mesh;    import away3d.materials.ColorMaterial;    import away3d.materials.SkyBoxMaterial;    import away3d.primitives.CubeGeometry;    import away3d.primitives.PlaneGeometry;    import away3d.textures.BitmapCubeTexture;        import flash.display.Sprite;    import flash.events.Event;    import flash.geom.Vector3D;        [SWF(width=640,height=480,frameRate=60)]    public class BreakingApp extends Sprite    {        [Embed(source="1.jpg")]        private var I1:Class;        [Embed(source="2.jpg")]        private var I2:Class;        [Embed(source="3.jpg")]        private var I3:Class;        [Embed(source="4.jpg")]        private var I4:Class;        [Embed(source="5.jpg")]        private var I5:Class;        [Embed(source="6.jpg")]        private var I6:Class;        private var view:View3D;        private var cube:Mesh;        private var hc:HoverController;        public function BreakingApp()        {            setupScene();        }        private function setupScene():void{            view =new View3D();            addChild(view);                        var bct:BitmapCubeTexture=new BitmapCubeTexture(new I1().bitmapData,                new I2().bitmapData,                new I3().bitmapData,                new I4().bitmapData,                new I5().bitmapData,                new I6().bitmapData);                                        cube=new Mesh(new CubeGeometry(),new SkyBoxMaterial(bct));            view.scene.addChild(cube);            view.camera.z=-500;            view.camera.y=300;            view.camera.lookAt(new Vector3D());            hc=new HoverController(view.camera,null,150,10,200);            addEventListener(Event.ENTER_FRAME,loop);        }                protected function loop(event:Event):void        {            // TODO Auto-generated method stub            hc.panAngle=mouseX-320;            hc.tiltAngle=mouseY-240;            cube.rotationY++;            view.render();        }    }}

虽然实现了运行,但是里面的代码是不求甚解。后续将继续研究,期待高手指点!QQ:445101304 ,希望大神不吝赐教。在此先感谢了