|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: Feb 2007
Сообщений: 30
|
Сразу к делу
Пример: http://malesya.ru/google/ Исходник в FlashDevelop: http://www.malesya.ru/google/Away3dGoogle.rar Исходник Flash CS4 :http://www.malesya.ru/google/flashaway3d.rar Код: package { import away3d.cameras.Camera3D; import away3d.containers.ObjectContainer3D; import away3d.containers.Scene3D; import away3d.containers.View3D; import away3d.core.light.PointLight; import away3d.core.math.Number3D; import away3d.materials.ColorMaterial; import away3d.primitives.Cube; import away3d.primitives.Plane; import flash.geom.Point; import flash.display.*; import flash.events.Event; /** * ... * @author Bdrs */ public class Main extends Sprite { private var view:View3D; private var scene:Scene3D; private var cam:Camera3D; private var container:ObjectContainer3D = new ObjectContainer3D; private var container2:ObjectContainer3D = new ObjectContainer3D; private var plane:Plane; private var spriteContainer:Sprite = new Sprite; private var spriteContainer2:Sprite = new Sprite; private var sprite:Sprite = new Sprite; public function Main():void { if (stage) init(); else addEventListener(Event.ADDED_TO_STAGE, init); } private function init(e:Event = null):void { removeEventListener(Event.ADDED_TO_STAGE, init); stage.scaleMode = StageScaleMode.NO_SCALE; stage.align = StageAlign.TOP_LEFT; ////////////////////// Flash constructor sprite.graphics.beginFill(0xFF0000, .6); sprite.graphics.drawRect( -50, -50, 100, 100); spriteContainer.x = stage.stageWidth / 2; spriteContainer.y = stage.stageHeight / 2; spriteContainer2.z = 1000; addChild(spriteContainer) spriteContainer.addChild(spriteContainer2); spriteContainer2.addChild(sprite); ///////////////////// AWAY 3D Constructor view = new View3D; view.x=stage.stageWidth/2; view.y=stage.stageHeight/2; scene=new Scene3D; cam = new Camera3D; cam.z=-1000; cam.lookAt(new Number3D(0,0,0)); view.scene = scene; view.camera = cam; addChild(view); var mat:ColorMaterial = new ColorMaterial(0x0000FF); mat.alpha = .6; plane = new Plane; plane.material = mat; plane.rotationX = 90; container2.z = 1000; scene.addChild(container); container.addChild(container2); container2.addChild(plane); addEventListener(Event.ENTER_FRAME, onEF); stage.addEventListener(Event.RESIZE, onResize); Resize(); } public function onEF(e:Event):void { spriteContainer.rotationY = (mouseX / stage.stageWidth - .5) * 90; container.rotationY = (mouseX / stage.stageWidth - .5) * 90; spriteContainer.rotationX = -( mouseY/stage.stageHeight-.5) * 90; container.rotationX = -(mouseY / stage.stageHeight - .5) * 90; view.render(); } public function onResize(e:Event):void { Resize(); } private function Resize():void{ view.x=stage.stageWidth/2; view.y=stage.stageHeight/2; spriteContainer.x = stage.stageWidth / 2; spriteContainer.y = stage.stageHeight / 2; root.transform.perspectiveProjection.projectionCenter=new Point(stage.stageWidth / 2,stage.stageHeight / 2); } } root.transform.perspectiveProjection.fieldOfView=55 root.transform.perspectiveProjection.focalLength = 768 в Away3d: camera.fov =10; camera focus = 100; Вопрос конечно специфичный, я уже четвертый день над ним залипаю, но вдруг кто сталкивался. Ответьте мне что-ли кто-нибудь. Любую глупую идею, а я ее проверю) Последний раз редактировалось udaaff; 23.08.2010 в 18:10. |
Часовой пояс GMT +4, время: 17:02. |
|
« Предыдущая тема | Следующая тема » |
|
|