# Questions about Array in AS2

**URL:** https://forum.kirupa.com/t/questions-about-array-in-as2/239208
**Category:** Uncategorized
**Created:** [September 19, 2007, 4:22pm UTC](https://forum.kirupa.com/t/questions-about-array-in-as2/239208 "2007-09-19T16:22:49Z")
**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, 4:22pm UTC](https://forum.kirupa.com/t/questions-about-array-in-as2/239208/1 "2007-09-19T16:22:49Z")

</div>

Hello everyone,

First I would like to say sorry for replying this question in this section as well but I am hoping that it will help me demystify the problem I am facing faster.

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](https://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](https://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 \< 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 \< 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 \< 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 \< this.getPanelNo(); i++) {  
//trace(xmlNode.childNodes\*);  
this.panels\* = new AdsPanel(xmlNode.childNodes\*);  
}  
}

public function resizeButtons(curPanel:Number) {  
for(var i = 0; i \< 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 \< 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
