PDA

Просмотр полной версии : Двумерный массив


Ноябрь
04.09.2007, 21:34
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="changeb(),genarr()">
<mx:Script>
<![CDATA[
import mx.collections.*;

[Bindable]
public var a:ArrayCollection = new ArrayCollection();
[Bindable]
public var b:String;

public function genarr():void{
for (var i:int = 0;i<5;i++){
a[i] = new ArrayCollection();
for(var j:int = 0;j<5;j++){
a[i][j]="1";
}
}
}
public function changeb():void{
b='bl';
}
]]>
</mx:Script>
<mx:Panel y="10" width="250" height="200" layout="absolute" horizontalCenter="14">
<mx:Text x="10" y="10" text="{a[0][0]}"/>
<mx:Text x="10" y="36" text="{b}"/>
</mx:Panel>
</mx:Application>
значение переменной b на экране не появляется..

есть вариан сделать 2 функции - одна генерирует одномерный массив, другая гененрирует одномерный массив из первой, но как тогда создать массив кнопок (к примеру)?

Ноябрь
04.09.2007, 22:58
ответ
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="addbutton()">
<mx:Script>
<![CDATA[
import mx.controls.Button;
import mx.collections.*;

[Bindable]
public var a:ArrayCollection = new ArrayCollection(genarrTM());

public function genarrOM():Array{
var t:Array = new Array();
for (var i:int = 0;i<5;i++){
var b:Button = new Button();
t[i]=b;
}
return t;
}

public function genarrTM():Array{
var t:Array = new Array();
for (var i:int = 0;i<5;i++){
t[i]=genarrOM();
}
return t;
}

public function addbutton():void{
var i:int=0;
var j:int=0;
for each (var a_:Array in a){
for each (var v:DisplayObject in a_){
bp.addChild(v);
v.x=i*100+20;
v.y=j*50+20;
i++;
}
j++;
i=0;
}
}
]]>
</mx:Script>
<mx:Panel y="10" width="500" height="500" layout="absolute" horizontalCenter="14" id="bp">
</mx:Panel>
</mx:Application>