![]() |
|
||||||||||
|
|||||
|
Регистрация: Aug 2009
Сообщений: 9
|
Прошу помощи, бьюсь уже день 5-й... Пересмотрел кучу примеров, но ничего так и не понял. Пишу в Flash 2004 MX на AS2.
Вообщем проблема такая: -Есть компонент List, в него нужно поместить картинки, вертикально одну за одной. -Картинки беруться по ссылкам из массива. Сколько не пытался картинки не выводятся. То же самое пытался сделать и с dataGrid, не получается. Код программы: ... //Беру список фотографий из определённого альбома dataProvider.getPhotos(ID, IDAlbum , function(success:Boolean) { if (success) { import mx.events.EventDispatcher; import mx.controls.DataGrid; EventDispatcher.initialize(grid); //Делаем массив из фотографий myDP = new Array(); for (var i:Number = 0; i<this.firstChild.childNodes.length; i++) { myDP.addItem({image:"this.firstChild.childNodes[i].childNodes[5].firstChild.nodeValue"}); } grid.dataProvider = myDP; grid.getColumnAt(0).cellRenderer = "ImageCellRenderer"; grid.getColumnAt(0).headerText = "Список фотографий:"; grid.getColumnAt(0).width = 130; grid.rowHeight = 130; grid.vScrollPolicy = "off"; } }); Класс ImageCellRenderer: import mx.data.encoders.Num; import mx.utils.Delegate; class ImageCellRenderer extends MovieClip { private var image : MovieClip; private var imageLoader : MovieClipLoader; private var loadListener : Object; private var listOwner : MovieClip; private var getCellIndex : Function; private var getDataLabel : Function; private static var PREFERRED_HEIGHT : Number = 130; private static var PREFERRED_WIDTH : Number = 130; private var cellWidth : Number; private var cellHeigth : Number; public function ImageCellRenderer() { image = createEmptyMovieClip('image', getNextHighestDepth()); imageLoader = new MovieClipLoader(); loadListener = new Object(); imageLoader.addListener(loadListener); loadListener.onLoadInit = Delegate.create(this, alignImage); } public function setSize(w:Number, h:Number):Void { // Необходимо сохранить ширину и высоту яйчейки, чтобы после загрузки картинки, ее можно было выровнить cellWidth = w; cellHeigth = h; alignImage(); } public function setValue(str:String, item:Object, sel:Boolean) : Void { if (item != undefined) { image._visible = true; imageLoader.loadClip(item[getDataLabel()], image); } image._visible = false; } public function getPreferredHeight() : Number { return PREFERRED_HEIGHT; } public function getPreferredWidth() : Number { return PREFERRED_WIDTH; } private function alignImage() : Void { image._x = (cellWidth - image._width) / 2; image._y = (cellHeigth - image._height) / 2; } } ![]() |
|
|||||
|
Регистрация: Aug 2009
Сообщений: 9
|
===
Спасибо за помощь, разобрался сам... Оказывается в CS4 всё нормально работает... а в 2004 MX постоянные ошибки выкидывает, которых нет. Только вопрос такой, как избавиться от моргания картинок??? Добавлено через 26 часов 32 минуты Никто так и не ответит?! |
![]() |
![]() |
Часовой пояс GMT +4, время: 02:09. |
|
|
« Предыдущая тема | Следующая тема » |
|
|