Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package {
- import flash.display.Sprite;
- import flash.events.*;
- import flash.ui.*;
- import sandy.core.Scene3D;
- import sandy.core.data.*;
- import sandy.core.scenegraph.*;
- import sandy.materials.*;
- import sandy.materials.attributes.*;
- import sandy.primitive.*;
- //для подключения xml
- import flash.net.URLLoader;
- import flash.net.URLLoaderDataFormat;
- import flash.net.URLRequest;
- public class Example003 extends Sprite {
- private var scene:Scene3D;
- private var camera:Camera3D;
- //подключение xml
- public var erwer=URLLoaderDataFormatExample();
- public function URLLoaderDataFormatExample() {
- var request:URLRequest=new URLRequest("uirs.xml");
- var variables:URLLoader=new URLLoader ;
- variables.addEventListener(Event.COMPLETE,completeHandler);
- try {
- variables.load(request);
- } catch (error:Error) {
- trace("Unable to load URL: "+error);
- }
- }
- public function completeHandler(event:Event):void {
- var loader:URLLoader=URLLoader(event.target);
- var dataXML:XML=XML(event.target.data);
- dataXML.ignoreWhite=true;
- trace(dataXML);
- //массивы для координат x, y, z
- var myArray_x:Array=[];
- var myArray_y:Array=[];
- var myArray_z:Array=[];
- var col_x;
- var col_y;
- var col_z;
- var i=0;
- //кол-во записей в xml
- var num=dataXML.child("uirs").length();
- //trace(num);
- for (i=0; i<num; i++) {
- col_x=dataXML.uirs[i].os_x;
- col_y=dataXML.uirs[i].os_y;
- col_z=dataXML.uirs[i].os_z;
- //заполнение массива
- myArray_x[i]=col_x;
- myArray_y[i]=col_y;
- myArray_z[i]=col_z;
- }
- trace("массив х " +myArray_x);
- }
- public function Example003() {
- //создание камеры
- camera=new Camera3D(300,300);
- camera.x=100;
- camera.y=100;
- camera.z=-400;
- camera.lookAt(0,0,0);
- // We create the "group" that is the tree of all the visible objects
- var root:Group=createScene();
- // We create a Scene and we add the camera and the objects tree
- scene=new Scene3D("scene",this,camera,root);
- // Listen to the heart beat and render the scene
- addEventListener( Event.ENTER_FRAME, enterFrameHandler );
- stage.addEventListener(KeyboardEvent.KEY_DOWN, keyPressed);
- }
- function createScene():Group {
- // Create the root Group
- var g:Group=new Group ;
- var Array1:Array=[50,0,150,50,-80,30, -40,55,-100,-70];
- var Array2:Array=[100,150,50,150,-30,100,85,-40,70,-20];
- var Array3:Array=[30,100,100,50,-50,80, 60,30,-50,-50];
- trace(Array1);
- //координатные оси
- var myxLine:Line3D=new Line3D("x-coord",new Point3D(-100,0,0),new Point3D(100,0,0));
- var myyLine:Line3D=new Line3D("z-coord",new Point3D(0,0,-150),new Point3D(0,0,200));
- var myzLine:Line3D=new Line3D("y-coord",new Point3D(0,-100,0),new Point3D(0,100,0));
- var materialAttr:MaterialAttributes = new MaterialAttributes(
- new LineAttributes( 2, 0x990000),
- new LightAttributes( true, 0.1)
- );
- var material:Material=new ColorMaterial(0xFF0000,1,materialAttr);
- material.lightingEnable=true;
- var app:Appearance=new Appearance(material);
- myxLine.appearance=app;
- myyLine.appearance=app;
- myzLine.appearance=app;
- var j=0;
- //цикл для построения точек
- for (j = 0; j <= Array1.length; j++) {
- var my1xLine:Line3D=new Line3D("x-coord",new Point3D(Array1[j],Array2[j],Array3[j]-2),new Point3D(Array1[j],Array2[j],Array3[j]+2));
- var my1yLine:Line3D=new Line3D("y-coord",new Point3D(Array1[j],Array2[j]-2,Array3[j]),new Point3D(Array1[j],Array2[j]+2,Array3[j]));
- var my1zLine:Line3D=new Line3D("z-coord",new Point3D(Array1[j]-2,Array2[j],Array3[j]),new Point3D(Array1[j]+2,Array2[j],Array3[j]));
- g.addChild(my1xLine);
- g.addChild(my1yLine);
- g.addChild(my1zLine);
- }
- g.addChild(myxLine);
- g.addChild(myyLine);
- g.addChild(myzLine);
- return g;
- }
- function enterFrameHandler(event:Event):void {
- scene.render();
- }
- function keyPressed(event:KeyboardEvent):void {
- switch (event.keyCode) {
- case Keyboard.UP :
- camera.tilt+=2;
- break;
- case Keyboard.DOWN :
- camera.tilt-=2;
- break;
- case Keyboard.RIGHT :
- camera.pan-=2;
- break;
- case Keyboard.LEFT :
- camera.pan+=2;
- break;
- case Keyboard.CONTROL :
- camera.roll+=2;
- break;
- case Keyboard.PAGE_DOWN :
- camera.z-=5;
- break;
- case Keyboard.PAGE_UP :
- camera.z+=5;
- break;
- }
- }
- }
- }
Add Comment
Please, Sign In to add comment