Элементарно.
Мы будем использовать Alternativa3D 8.
Создаем в Flash новый проект типа ActionScript3. Тут же сохраняем.
Качаем Alternativa3D 8 в виде SWC билиотеки.
Добавляем ее в проект
Там вставляем вот такую хрень:
package { import alternativa.engine3d.core.Camera3D; import alternativa.engine3d.core.Object3D; import alternativa.engine3d.core.Resource; import alternativa.engine3d.core.View; import alternativa.engine3d.materials.FillMaterial; //1 import alternativa.engine3d.primitives.Box; //1 import flash.display.Sprite; import flash.display.Stage3D; import flash.events.Event; public class alttest extends Sprite { private var rootContainer:Object3D = new Object3D(); private var camera:Camera3D; private var stage3D:Stage3D; private var box:Box; //2 public function alttest(){ camera = new Camera3D(0.1, 10000); camera.view = new View(stage.stageWidth, stage.stageHeight); camera.rotationX = -120 * Math.PI / 180; //3 camera.y = -800; //3 camera.z = 400; //3 addChild(camera.view); rootContainer.addChild(camera); box = new Box(500, 500, 500, 5, 5, 5); //4 var material:FillMaterial = new FillMaterial(0xFF7700); //4 box.setMaterialToAllSurfaces(material); //4 rootContainer.addChild(box); //4 stage3D = stage.stage3Ds[0]; stage3D.addEventListener(Event.CONTEXT3D_CREATE, onContextCreate); stage3D.requestContext3D(); } private function onContextCreate(e:Event):void { for each (var resource:Resource in rootContainer.getResources(true)){ resource.upload(stage3D.context3D); } stage.addEventListener(Event.ENTER_FRAME, onEnterFrame); } private function onEnterFrame(e:Event):void { box.rotationZ -= 0.01; //5 camera.render(stage3D); } } } <br>
Сохраняем, Запускаем Ctrl-Enter
Вуаля.. Крутится кубик.
Задание выполнено.
В следующий раз мы попробуем управлять вращением кубика по нашему желанию.
Код ActionScript3 — ужасен, такого кашмара ООП я не встречал на просторах PHP =)
Код скопирован с сайта Alternativa3D 8.