PDA

Просмотр полной версии : как добавить элемент List динамически


syegorius
07.05.2013, 02:37
доброе время суток.

у меня есть mxml файл в котором добавляется элемент List таким способом:

<mx:List width="500" height="100" id="fileList" left="500" />

в этот елемент я добавляю ссылки на файлы, которые потом можно скачать:

public function receiveFile(info:Object):void{
dp.addItem( { label:info.name, file:info.file } );
fileList.dataProvider = dp;
}

но мне нужно добавить этот элемент динамически с указанной шириной высотой и координатами. как это сделать при помощи actionscript внутри самого кода?

или возможно его можно заменить на другой элемент который будет выполнять все его ф-нции. то есть что бы по клику на ссылку началось сохранение переданного файла...

заранее спасибо за помощь!

AlexLucas
07.05.2013, 13:50
Также как и любой другой компонент

public function addNewList(w:Number, h:Number, x:Number, y:Number):void
{
var l:List = new List();
addChild(l);
//задаёте w/h/x/y ....
...
//заполняете его содержимым
....
//и ловите клик
l.addEventListener(Event.CHANGE, loadFile);
}

private function loadFile(event:Event):void
{
var fileName:String = event.currentTarget.selectedItem.data;
//грузите файл
}

syegorius
07.05.2013, 20:34
я нашел эту статью http://help.adobe.com/ru_RU/ActionScript/3.0_UsingComponentsAS3/WS5b3ccc516d4fbf351e63e3d118a9c65b32-7fa6.html. сдклал все как там говорится. но компилятор постоянно выдает ошибку на list.setSize(vWidth,vHeight); типа такой ф-ции в клвссе нет. подключаю библиотеку import mx.controls.List; В чем может быть дело?

Ошибка "Error: Call to a possibly undefined method setSize through a reference with static type mx.controls:List"

Inet_PC
07.05.2013, 20:53
я нашел эту статью http://help.adobe.com/ru_RU/ActionSc...5b32-7fa6.html. сдклал все как там говорится. но компилятор постоянно выдает ошибку на
Код AS3:
list.setSize(vWidth,vHeight);
типа такой ф-ции в клвссе нет. подключаю библиотеку import mx.controls.List; В чем может быть дело?

Ошибка "Error: Call to a possibly undefined method setSize through a reference with static type mx.controls:List"
В этой статье используется компонент fl.controls.List, а Вы используете mx.controls.List. В классе mx:List нет метода setSize, отсюда и ошибка.

import mx.controls.List;

//..

var list:List = new List();
list.x = 15;
list.y = 30;
list.width = 200;
list.height = 400;
list.dataProvider = new ArrayCollection(["link_1","link_2","link_3"]);
addChild(list);
//или addElement(list); если используется flex 4 и выше.