# (AS3) How to divide my code into classes/package

**URL:** https://forum.kirupa.com/t/as3-how-to-divide-my-code-into-classes-package/239115
**Category:** flash
**Created:** [September 18, 2007, 8:33pm UTC](https://forum.kirupa.com/t/as3-how-to-divide-my-code-into-classes-package/239115 "2007-09-18T20:33:42Z")
**Posts on this page:** 1
**Page:** 1

<div class="post-metadata">

### Author: ![mark\_eberhart](https://avatars.discourse-cdn.com/v4/letter/m/d07c76/32.png) [@mark\_eberhart](https://forum.kirupa.com/u/mark_eberhart)
#### Post date: [September 18, 2007, 8:33pm UTC](https://forum.kirupa.com/t/as3-how-to-divide-my-code-into-classes-package/239115/1 "2007-09-18T20:33:42Z")

</div>

Anyone familiar with this? I have already tried dividing among classes and it is not working.

I have created the following code that pulls data from an external xml file into a datagrid. I have been trying to figure out how to get it to function using classes and/or packages. I’d like to separate the functionality into separate classes for each of the following:

1. A class for loading the XML file(s) (there will likely be more datagrids and more xml files)
2. A class for “drawing” the datagrid based on the xml  
… others you can think of??

I have attached the code in question.

Thanks,  
Mark

```auto
 
/////////////////////////////// BEGIN xml_to_datagrid.fla ///////////////////////////////////////

// create a new AS3 movie called "xml_to_datagrid.fla"
// create an xml file called "test.xml" and save BOTH in the same directory
// copy and paste the following code into the actionscript layer of your first frame.

import flash.display.*;
import flash.display.Sprite;
import flash.net.*;
import flash.events.*;
import fl.data.DataProvider;
import fl.controls.Button;
import fl.controls.DataGrid;
import fl.controls.dataGridClasses.DataGridColumn;
import fl.containers.UILoader;
import flash.xml.*;

var xmlDP:DataProvider;
var loadedData:XMLList;
var myXML:XML;
var myDP:DataProvider;

openXML("test.xml");

function openXML(xmlFile) {
var xmlLoader:URLLoader = new URLLoader ;
var xmlRequest:URLRequest = new URLRequest(xmlFile);
xmlLoader.load(xmlRequest);
xmlLoader.addEventListener(Event.COMPLETE,onComplete);
}

function onComplete(event:Event):void {
var dataLoader:URLLoader = URLLoader(event.target);
myXML = new XML(dataLoader.data);
myDP = new DataProvider(myXML);
makeDataGrid(myDP);
}

function makeDataGrid(xmlDP):void {
var myDataGrid:DataGrid = new DataGrid();

//Bank Name Column
var bankCol:DataGridColumn = myDataGrid.addColumn(new DataGridColumn("bank_name"));
bankCol.headerText = "Bank";
bankCol.width = 50;

//Amount Column
var amountCol:DataGridColumn = myDataGrid.addColumn(new DataGridColumn("amount"));
amountCol.headerText = "Amount";
amountCol.width = 60;

myDataGrid.rowCount = xmlDP.length;
myDataGrid.width = 320;
myDataGrid.move(100,100);
myDataGrid.dataProvider = xmlDP;
addChild(myDataGrid);
}

/////////////////////////////// END xml_to_datagrid.fla ///////////////////////////////////////

/*////// BEGIN test.xml ////////

<?xml version="1.0" encoding="iso-8859-1"?>
<violations>
<violation>
    <bank_name>Bank A</bank_name>
<amount>5000.00</amount>
  </violation>
<violation>
    <bank_name>Bank B</bank_name>
<amount>2335000.00</amount>
  </violation>
<violation>
    <bank_name>Bank C</bank_name>
<amount>2000.00</amount>
  </violation>
<violation>
    <bank_name>Bank D</bank_name>
<amount>100.00</amount>
  </violation>
<violation>
    <bank_name>Bank E</bank_name>
<amount>20.00</amount>
  </violation>
</violations>

*/////////////// END test.xml //////////////

```
