看了这个视频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++;
第五阶段 放进图片【 注意:图片的大小(像素必须是2的n次方,否则报错: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 ,希望大神不吝赐教。在此先感谢了