PDA

Просмотр полной версии : Массив данных сопоставить?


repz
21.12.2007, 16:16
Как можно сопоставить arr - smallArray? что бы потом использовать в клип лоадер как переменную типа var a =?

smallArray = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15];
ab.dataProvider=smallArray;
ab.dataProvider = arr;


var arr:Array = new Array(222,333,444,555,666,777,888,999,111,356,654,585,256,554)
for(var i=0;i<arr.length;i++){
mc = _root.attachMovie('mov','mov'+i,i,{_x:100, _y:20+30*i})
mc.txt.text = arr[i]
mc.onPress = pressed

}
function pressed () {
trace(this.txt.text);

//Клип лоадер
var container:MovieClip = createEmptyMovieClip("container", getNextHighestDepth());
var mcLoader:MovieClipLoader = new MovieClipLoader();
mcLoader.addListener(this);
mcLoader.loadClip("adres.swf", container); // +a????
container._x=1;
container._y=1;
///////////////////////////////////////////////////////////////////////////////

}

Fernando Costa
21.12.2007, 16:23
и опять с вопроса ничего не понять, зачем вам dataProvider ?

repz
21.12.2007, 16:27
Хочу сопоставить arr со smallArray, то есть что бы если вместо 222 у меня будет ул.Маркса, что б не было в i этого, а было 1,2 и так далее.

Fernando Costa
21.12.2007, 16:35
это финиш вообще, невозможно ответить на вопрос типа "эта, вот хочу чтобы вот тута а не вот так как сдесь, ну вот так".
Вы уж простите

repz
21.12.2007, 16:38
Я хочу что б arg возвращал не имя в массиве, а номер типа 1-3-5-6...
var array:Array = new Array ("a1", "a2", "a3");
var txt:TextField = this.createTextField ("txt", 0, 100, 100, 100, 100);
txt.autoSize = true;
txt.html = true;
function myfunc (str:String) {
trace (str);

//Клип лоадер
var container:MovieClip = createEmptyMovieClip("container", getNextHighestDepth());
var mcLoader:MovieClipLoader = new MovieClipLoader();
mcLoader.addListener(this);
mcLoader.loadClip("adres"+arg+".swf", container);
container._x=1;
container._y=1;
///////////////////////////////////////////////////////////////////////////////

}
function setText () {
var a:Array = new Array ();
for (var i:Number = 0; i < array.length; i++) {
a.push ("<a href='asfunction:myfunc" + array[i] + "'>\r" + array[i] + "</a>");
}
txt.htmlText = a.toString ();
}

udaaff
21.12.2007, 17:23
Если предположить что arg -- это str, и вы хотите возвращать номер по имени, то используйте объект.

repz
21.12.2007, 17:26
Да ошибся), как енто объект? как-то так?
var arg:Object = new Object();
arg.change = function() {
trace("????????");
// действия
};
arg.addListener(arg);
А если массив написать так:
var arr:Array = new Array();
arr[1] = "222222";
arr[0] = "333333";
arr[2] = "333333";
то как обратиться к arr[1],arr[0]...???
в контексте кода выше.


ДОБАВИЛ:
var arr:Array = new Array();
arr[0] = "222222";
arr[1] = "333333";
arr[2] = "333333";

for (var w in arr){
trace (w);}
for(var i=0;i<arr.length;i++){
mc = _root.attachMovie('mov','mov'+i,i,{_x:100, _y:20+30*i})
mc.txt.text = arr[i]
mc.onPress = pressed
}

function pressed () {
trace(this.txt.text);
trace(w);

}
в первом случае trace (w); - выводит 0,1,2 во втором 0 - всегда

udaaff
21.12.2007, 18:04
var obj = new Object();
obj.a = 1;
obj.b = 2;
trace(obj.a) // 1

repz
21.12.2007, 18:06
Хм, а привязать к массиву-то их как?