away3d 搭建(一)

看了这个视频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 ,希望大神不吝赐教。在此先感谢了
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zhchyun2008

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值