Работа заключается в том, что мне необходимо визуализировать массив данных из хмл в виде трехмерного графика. Для работы был выбран движок Сэнди. На данном этапе столкнулась с проблемой передачи массива данных из одного класса в другой. Подскажите пожалуйста как правильно это реализовать?

Код AS3:
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;
}
}
}
}