# Questions about Array in AS2

**URL:** https://forum.kirupa.com/t/questions-about-array-in-as2/239206
**Category:** flash
**Created:** [September 19, 2007, 3:56pm UTC](https://forum.kirupa.com/t/questions-about-array-in-as2/239206 "2007-09-19T15:56:21Z")
**Posts on this page:** 1
**Page:** 1

<div class="post-metadata">

### Author: ![unparadise](https://avatars.discourse-cdn.com/v4/letter/u/258eb7/32.png) [@unparadise](https://forum.kirupa.com/u/unparadise)
#### Post date: [September 19, 2007, 3:56pm UTC](https://forum.kirupa.com/t/questions-about-array-in-as2/239206/1 "2007-09-19T15:56:21Z")

</div>

Hello everyone,

I have a question regarding how to create arrays with the same name inside an array of object. When I populate the array with data from a xml file, all of them got the same value. Below are the codes I wrote.

* * *

**AdBoard.as**

class AdBoard {  
private var xPos:Number;  
private var yPos:Number;  
private var boardHeight:Number;  
private var adsID:String;  
private var imagePath:String;  
private var url:String;

```
public function AdBoard(adNode:XML) {
	this.loadData(adNode);
	
	//this.displayProperties();
}

public function loadData(adNode:XML) {
	this.setAdsID(adNode);
	this.setBoardHeight(adNode);
	this.setImagePath(adNode);
	this.setLink(adNode);
}

public function setAdsID(adNode:XML) {
	this.adsID = adNode.attributes.id;
}

public function setBoardHeight(adNode:XML) {
	this.boardHeight = adNode.attributes.height;
}

public function setImagePath(adNode:XML) {
	this.imagePath = adNode.attributes.image;
}

public function setLink(adNode:XML) {
	this.url = adNode.attributes.url;
}

public function setXPos(xp:Number) {
	this.xPos = xp;
}

public function setYPos(yp:Number) {
	this.yPos = yp;
}

public function getAdsID():String {
	return this.adsID;
}

public function getBoardHeight():Number {
	return this.boardHeight;
}

public function getImagePath():String {
	return this.imagePath;
}

public function getLink():String {
	return this.url;
}

public function getXPos():Number {
	return this.xPos;
}

public function getYPos():Number {
	return this.yPos;
}

public function displayProperties() {
	trace("==================================");
	trace("Ads ID: " + this.getAdsID());
	trace("Board Height: " + this.getBoardHeight());
	//trace("Origin: (" + this.getXPos() + ", " + this.getYPos() + ")");
	trace("Image path: " + this.getImagePath());
	trace("URL: " + this.getLink());
}

/*
public function display() {
	trace("ad board display function");
}

public function run() {
	trace("ad board run function");
}
*/

```

}

* * *

**AdsPanel.as**

class AdsPanel {  
private var id:Number;  
private var xPos:Number;  
private var yPos:Number;  
private var displayTime:Number;  
private var noOfAdBoards:Number;  
private var margin:Number;  
private var adBoards:Array = new Array();

```
public function AdsPanel(panelNode:XML) {
	this.loadData(panelNode);
	this.populatePanel(panelNode);
	this.setPositions(this.xPos, this.yPos, this.adBoards);

	//this.displayProperties();
}

public function loadData(panelNode:XML) {
	this.setID(panelNode);
	this.setXPos(panelNode);
	this.setYPos(panelNode);
	this.setDisplayTime(panelNode);
	this.setMargin(panelNode);
	this.setNoOfAdBoards(panelNode);
}

public function populatePanel(panelNode:XML) {
	for(var i = 0; i &lt; this.getNoOfAdBoards(); i++) {
		this.adBoards* = new AdBoard(panelNode.childNodes*);
		//trace(this.adBoards*.getBoardHeight());
	}
}

public function setPositions(x_ori:Number, y_ori:Number, boards:Array) {
	boards[0].setXPos(x_ori);
	boards[0].setYPos(y_ori);
	for(var i = 1; i &lt; boards.length; i++) {
		boards*.setXPos(x_ori);
		boards*.setYPos(Number(boards[i-1].getYPos()) + Number(boards[i-1].boardHeight) + Number(this.margin));
	}
}

public function setID(panelNode:XML) {
	this.id = panelNode.attributes.id;
}

public function setXPos(panelNode:XML) {
	this.xPos = panelNode.attributes.x_pos;
}

public function setYPos(panelNode:XML) {
	this.yPos = panelNode.attributes.y_pos;
}

public function setDisplayTime(panelNode:XML) {
	this.displayTime = panelNode.attributes.displaytime;
}

public function setNoOfAdBoards(panelNode:XML) {
	this.noOfAdBoards = panelNode.childNodes.length;
}

public function setMargin(panelNode:XML) {
	this.margin = panelNode.attributes.margin;
}

public function getID():Number {
	return this.id;
}

public function getXPos():Number {
	return this.xPos;
}

public function getYPos():Number {
	return this.yPos;
}

public function getDisplayTime():Number {
	return this.displayTime;
}

public function getMargin():Number {
	return this.margin;
}

public function getNoOfAdBoards():Number {
	return this.noOfAdBoards;
}

public function displayProperties() {
	trace("/////////////////////////////");
	trace("Panel ID: " + this.getID());
	trace("Origin: (" + this.getXPos() + ", " + this.getYPos() + ")");
	trace("Display time: " + this.getDisplayTime());
	trace("Margin: " + this.getMargin());
	trace("No. of Ads: " + this.getNoOfAdBoards());
	this.displayAdsBoardsProperties();
}

public function displayAdsBoardsProperties() {
	for(var i = 0; i &lt; this.getNoOfAdBoards(); i++) {
		trace("Ad Boards " + i + ": (" + this.adBoards*.getXPos() + ", " + this.adBoards*.getYPos() + ")");
		trace("Ad Boards Height: " + this.adBoards*.getBoardHeight());
	}
}

```

}

* * *

**AdsWindow.as**

class AdsWindow {  
private var panels:Array = new Array();  
private var panelNo:Number;  
private var currentPanel:Number;

```
public function AdsWindow(xmlNode:XML) {
	this.setPanelNo(xmlNode);
	this.populatePanels(xmlNode);
	this.setCurrentPanel(0);
	
	this.resizeButtons(this.currentPanel);
	this.displayProperties();
}

public function populatePanels(xmlNode:XML) {
	for(var i = 0; i &lt; this.getPanelNo(); i++) {
		//trace(xmlNode.childNodes*);
		this.panels* = new AdsPanel(xmlNode.childNodes*);
	}
}

public function resizeButtons(curPanel:Number) {
	for(var i = 0; i &lt; this.panels[curPanel].getNoOfAdBoards(); i++) {
		//trace(this.panels[curPanel].adBoards*.getBoardHeight());
	}

	_root.inviBtn00._x = this.panels[curPanel].adBoards[0].getXPos();
	_root.inviBtn00._y = this.panels[curPanel].adBoards[0].getYPos();
	_root.inviBtn00._height = this.panels[curPanel].adBoards[0].getBoardHeight();
	
	_root.inviBtn01._x = this.panels[curPanel].adBoards[1].getXPos();
	_root.inviBtn01._y = this.panels[curPanel].adBoards[1].getYPos();
	_root.inviBtn01._height = this.panels[curPanel].adBoards[1].getBoardHeight();
}

public function setCurrentPanel(curPanel:Number) {
	this.currentPanel = curPanel;
}

public function setPanelNo(xmlNode:XML) {
	this.panelNo = xmlNode.childNodes.length;
}

public function getCurrentPanel():Number {
	return this.currentPanel;
}

public function getPanelNo():Number {
	return this.panelNo;
}

public function displayProperties() {
	trace("++++++++++++++++++++++++++++++++++++++");
	trace("No of Panels: " + this.getPanelNo());
	for(var i = 0; i &lt; this.getPanelNo(); i++) {
		this.panels*.displayProperties();
	}
}

```

## }

**ads\_data.xml**

\<?xml version=“1.0” encoding=“utf-8” standalone=“yes”?\>  
\<ads\_panel id=“1” x\_pos=“30” y\_pos=“30” displaytime=“5” margin=“20”\>  
\<ad id=“ADV000001” height=“120” image="./images/01.png" url="./pages/01.html"\>\</ad\>  
\<ad id=“ADV000002” height=“120” image="./images/02.png" url="./pages/02.html"\>\</ad\>  
\<ad id=“ADV000003” height=“120” image="./images/03.png" url="./pages/03.html"\>\</ad\>  
\<ad id=“ADV000004” height=“120” image="./images/04.png" url="./pages/04.html"\>\</ad\>  
\<ad id=“ADV000005” height=“120” image="./images/05.png" url="./pages/05.html"\>\</ad\>  
\<ad id=“ADV000006” height=“120” image="./images/06.png" url="./pages/06.html"\>\</ad\>  
\</ads\_panel\>  
\<ads\_panel id=“2” x\_pos=“30” y\_pos=“30” displaytime=“10” margin=“20”\>  
\<ad id=“ADV000001” height=“100” image="./images/01.png" url="./pages/01.html"\>\</ad\>  
\<ad id=“ADV000002” height=“60” image="./images/02.png" url="./pages/02.html"\>\</ad\>  
\<ad id=“ADV000003” height=“120” image="./images/03.png" url="./pages/03.html"\>\</ad\>  
\<ad id=“ADV000004” height=“60” image="./images/04.png" url="./pages/04.html"\>\</ad\>  
\<ad id=“ADV000005” height=“120” image="./images/05.png" url="./pages/05.html"\>\</ad\>  
\<ad id=“ADV000006” height=“120” image="./images/06.png" url="./pages/06.html"\>\</ad\>  
\</ads\_panel\>  
\</data\>

* * *

**Flash fla file - code on the first frame of the movie**

stop();

var adsDataFile:String = “./ads\_data.xml”;  
var adsWin:AdsWindow;

var adsLifeTime:Number = 5;  
var \_delay:Boolean = true;  
var lastTime:Number = 0;  
var adsProxies:Array = [];

var adsXMLdata=new XML();  
adsXMLdata.ignoreWhite = true;

## adsXMLdata.onLoad = function(success){ if (success){ adsWin = new AdsWindow(adsXMLdata); } } adsXMLdata.load(adsDataFile);

If you put these together and test run the project, you can see that the two arrays of adsBoard have exactly the same data. This really confuses me. I would really appreciate if anyone could help me with what caused this weird thing and how to solve it.

Thank you very much in advance.

Best Regards,  
Frank
