Показать сообщение отдельно
Старый 11.03.2011, 21:45
redefy вне форума Посмотреть профиль Отправить личное сообщение для redefy Посетить домашнюю страницу redefy Найти все сообщения от redefy
  № 1  
Ответить с цитированием
redefy
 
Аватар для redefy

Регистрация: Mar 2011
Сообщений: 58
По умолчанию Проблема в цикле for с UILoader

Короче есть мини галерея с 4 компонентами UILoader (comp1, comp2, comp3, main)
В comp1, comp2, comp3 грузяться превьюшки а в main большая картинка
В 2 TextField (myTitle и myDescript) загружается заголовок и описание

Ниже код
Код AS3:
main.source = "image0Big.jpg";
 
var arrLoader:Array = new Array (comp1,comp2,comp3);
var arrBigImages:Array = new Array ("image0Big.jpg","image1Big.jpg","image2Big.jpg");
var arrSmallImages:Array = new Array ("image0.jpg","image1.jpg","image2.jpg");
var arrTxtTitle:Array = new Array ("text0.txt","text1.txt","text2.txt");
var arrTxtDescript:Array = new Array ("text0-0.txt","text1-1.txt","text2-2.txt");
 
function portfolioLoader (image, textFile,textFile2):void {
main.source = image;
var myData = new URLLoader(new URLRequest(textFile));       //3  
var myData2 = new URLLoader(new URLRequest(textFile2));
myData.addEventListener (Event.COMPLETE,function(e:Event) {myTitle.text = e.target.data;});
myData2.addEventListener (Event.COMPLETE,function(e:Event) {myDescript.text = e.target.data;});
}
 
 
 
for (var i:int = 0; i<arrLoader.length; i++) {
arrLoader[i].source = arrSmallImages[i];
arrLoader[i].addEventListener (MouseEvent.ROLL_OVER, function (e:MouseEvent) {e.target.alpha = 0.2});
arrLoader[i].addEventListener (MouseEvent.ROLL_OUT, function (e:MouseEvent) {e.target.alpha = 1.0});
//arrLoader[i].addEventListener (MouseEvent.CLICK, function (e:MouseEvent) {portfolioLoader (arrBigImages[i],arrTxtTitle[i],arrTxtDescript[i]);});    //1
}
arrLoader[0].addEventListener (MouseEvent.CLICK, function (e:MouseEvent) {portfolioLoader(arrBigImages[0], arrTxtTitle[0],arrTxtDescript[0]);});       //2
arrLoader[1].addEventListener (MouseEvent.CLICK, function (e:MouseEvent) {portfolioLoader(arrBigImages[1], arrTxtTitle[1],arrTxtDescript[1]);});
arrLoader[2].addEventListener (MouseEvent.CLICK, function (e:MouseEvent) {portfolioLoader(arrBigImages[2], arrTxtTitle[2],arrTxtDescript[2]);});
Так вот ==>
1) Почему весь код в цикле работает, а строчка //1 нет. Ниже после цикла такой же код отлично работает //2
2) Как //3 извлекать переменные из загруженного текста в URLLoader'е. Как я понял из доков текст хранится в свойстве data. Ну а как ссылаться на отдельную переменную ?
Я решил проблему созданием двух URLLoader'ов и в каждый загружаю разный текст. Но наверняка есть метод проще