Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Flex (http://www.flasher.ru/forum/forumdisplay.php?f=84)
-   -   Как разместить в TileList картинки (http://www.flasher.ru/forum/showthread.php?t=133544)

zozo 08.12.2009 01:05

Как разместить в TileList картинки
 
Подскажите, пожалуйста как можно сделать следующее:

Надо, чтоб картинки выводились в TileList-е. Но вместо картинок выводятся только их названия. Привожу код:
Код AS3:

<mx:TileList x="242" y="10" width="900" height="315" id="listOfImages" 
          dataProvider="{imageStorage}" allowMultipleSelection="true" enabled="true">
</mx:TileList>
//Это как компонент обьявляется

Код AS3:

 
public function showImages():void
{
        for(var i:Number=0;i<arrayOfImages.length;i++)
        {       
                imageStorage.addItem({label:arrayOfImages[i].nameOfImage,
                                                  source:arrayOfImages[i].nativePathOfImage});
                trace(imageStorage.getItemAt(i))//Выводит [object Object]
        }       
}
//В этой функции картинки добавляются в TileList
//arrayOfImages[i].nativePathOfImage содержит путь к картинке
//arrayOfImages[i].nameOfImage содержит название картинки


BeDLiNt 08.12.2009 08:45

source замени на icon.

zozo 08.12.2009 09:00

Попробовал заменить source на icon - ничего неи зменилось

BeDLiNt 08.12.2009 09:09

Так... да, надо source. Возможно ваших картинок просто не видно?
Код AS3:

tileList.columnWidth = 150;
tileList.rowHeight = 150;


lighto 08.12.2009 09:09

А можно глянуть заполнение массива arrayOfImages???

zozo 08.12.2009 10:53

BeDLiNt, поставил как вы сказали, все равно выводится вместо картинки её название, только поле где оно выводится увеличилось.

BeDLiNt 08.12.2009 11:18

Да у вас не вместо картинки выводится её название, тайлЛист отображает картинку и label под ней, у вас он картинку почему-то не отображает. Скорее всего дело в путях до картинок (nativePathOfImage).

zozo 08.12.2009 11:41

lighto,

Эта функция вызывается при нажатии на кнопку "Открыть файл"
Код AS3:

public function selectEventHandler(event:FileListEvent):void
{
        var fileTemp:File;
        var imageTemp:Image_;
        for(var i:Number=0;i<event.files.length;i++)
        {
                fileTemp = event.files[i] as File;
                fileNameText.text += fileTemp.name + "\n";
                filePathText.text += fileTemp.nativePath+ "\n";
                imageTemp = new Image_(i,fileTemp.name,fileTemp.nativePath);
                imageTemp.width = 150;
                imageTemp.height = 150;
                imageTemp.source = fileTemp.nativePath;
                      arrayOfImages.push(imageTemp);        //Занесение картинок в массив
        }       
}

Привожу на всякий случай класс Image_, который расширяет Image
Код AS3:

 
package
{
        import mx.controls.Image;
 
        public class Image_ extends Image
        {
                public function Image_(index,name_,path_)
                {
                        indexInArray = index;
                        this.nameOfImage = name_;
                        this.nativePathOfImage = path_
                }
                public var indexInArray:int;
                public var nameOfImage:String;
                public var nativePathOfImage:String;
                public var selected:Boolean = false;
        }
}

Добавлено через 5 минут
BeDLiNt, мне кажется, что все-таки вместо картинки выводится её название. Потому что label выводится не под местом, где должна была быть картинка, а по середине этого места, то есть на месте картинки.
В путях тоже нет ошибки, просто я их вывожу на экран и они правильные.

Добавлено через 10 часов 28 минут
Так что кто-то поможет??

wvxvw 14.12.2009 15:47

А если просто отдельно где-то положить Image и ему сорс назначить из массива: arrayOfImages[i].nativePathOfImage? Покажет картинку?

zozo 14.12.2009 16:28

Да, показывает.
Код AS3:

public function showImages():void
{
        for(var i:Number=0;i<arrayOfImages.length;i++)
        {       
                imageStorage.addItem({label:arrayOfImages[i].nameOfImage,
                                                  source:arrayOfImages[i].nativePathOfImage});
                img.source = arrayOfImages[i].nativePathOfImage; //Присвоение source-у картинки пути
        }       
}



Часовой пояс GMT +4, время: 06:24.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.