![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Jun 2010
Сообщений: 65
|
Добрый вечер коллеги!
Задача состоит в следующем: необходимо из папки загрузить изображения в динамически создаваемые МувиКлипы. Примерный код привожу ниже: var mcl: MovieClipLoader = new MovieClipLoader(); var str:String = "img"; var mcName:String = "mc"; var v:Boolean = false; var i:Number = 0; do{ i++; v = mcl.loadClip("images/"+str+i+".jpg", mcName+i); }while(v == true) Заранее спасибо! |
|
|||||
|
блогер
Регистрация: Feb 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 2,113
Записей в блоге: 1
|
function createLoaderClip(createTo, src) { var d = createTo.getNextHighestDepth(); var newClip = createTo.createEmptyMovieClip("loaderClip_"+d, d); var mcl = new MovieClipLoader(); var loadListener = {}; loadListener.onLoadInit = function(target_mc) { trace("loaded! "+target_mc._width+"x"+target_mc._height); }; mcl.addListener(loadListener); mcl.loadClip(src,newClip); return newClip; } for (var k = 0; k<10; k++) { var newLoaderClip = createLoaderClip(_root, "http://www.flasher.ru/forum/images/russian/flasher_logo.gif"); newLoaderClip._y = k*80; } ![]()
__________________
hauts.ru |
|
|||||
|
Регистрация: Jun 2010
Сообщений: 65
|
Снова здравствуйте!
Столкнулся с небольшой трудностью: mcl.loadClip(src,newClip); возвращает true всегда, даже при отсутствии изображения. Потом, правда, в консоли появляется сообщение о ошибке загрузки. Может использовать mcl.onLoadError в качестве обработчика события? Спасибо! |
|
|||||
|
блогер
Регистрация: Feb 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 2,113
Записей в блоге: 1
|
Да, нужно использовать onLoadError у слушателя mcl.
function createLoaderClip(createTo, src) { var d = createTo.getNextHighestDepth(); var newClip = createTo.createEmptyMovieClip("loaderClip_"+d, d); var mcl = new MovieClipLoader(); var loadListener = {}; loadListener.onLoadInit = function(target_mc:MovieClip) { trace("loaded! "+target_mc._width+"x"+target_mc._height); }; loadListener.onLoadError = function(target_mc:MovieClip, errorCode:String, httpStatus:Number) { trace(">> loadListener.onLoadError()"); trace(">> =========================="); trace(">> errorCode: " + errorCode); trace(">> httpStatus: " + httpStatus); }; mcl.addListener(loadListener); mcl.loadClip(src,newClip); return newClip; } for (var k = 0; k<10; k++) { var newLoaderClip = createLoaderClip(_root, "http://www.flasher.ru/forum/images/russian/flasher_logo.gif"); newLoaderClip._y = k*80; }
__________________
hauts.ru Последний раз редактировалось Hauts; 10.02.2011 в 13:32. |
|
|||||
|
Регистрация: Jun 2010
Сообщений: 65
|
В продолжении темы добавлю:
var dx:Number = 120; x_prelCoordinate = 4.5; x_prewCoordinate = 4.5; var mtrx = new Matrix(); mtrx.scale(1.0, 1.0); var prevInstName:String = ""; var mcl:MovieClipLoader = new MovieClipLoader(); for(var i:Number = 1; i<=5; i++){ var d1 = _root.getNextHighestDepth(); prelInstName = "preloadClip_"+d1; var newClip = _root.createEmptyMovieClip(prelInstName, d1); mcl.loadClip("images/mno"+i+".jpg", newClip); newClip._x = x_prelCoordinate; x_prelCoordinate = newClip._x + dx; newClip._y = 5; var bmd = new BitmapData(100, 60, true, 0x00000000); bmd.draw(newClip,mtrx,null,"normal",null,true); var d2 = roll.getNextHighestDepth(); prewInstName = "prewievClip_"+d2; roll.createEmptyMovieClip(prewInstName, d2); roll[prewInstName].attachBitmap(bmd, d2, "auto", true); mcl.loadClip("images/mno"+i+".jpg", roll[prewInstName]); roll[prewInstName]._x = x_prewCoordinate; x_prewCoordinate = roll[prewInstName]._x + dx; roll[prewInstName]._y = 5; } Помогите пожалуйста найти ошибку в коде! Заранее спасибо! |
|
|||||
|
Регистрация: Jun 2010
Сообщений: 65
|
Цель: в гелерее сделать "превью", состоящее из изображений одного размера(допустим 100 на 60), в то время как оригиналы изображений разного размера.
В этом коде я хотел сравнить оригиналы загружаемых изображений(наверху) и увидеть результат создания "превью"(внизу). Но в результате как наверху оригинал, так и внизу. |
|
|||||
|
блогер
Регистрация: Feb 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 2,113
Записей в блоге: 1
|
Понятно.
Для начала вам необходимо загрузить изображения. После их полной загрузки отрисовать их в битмапдаты — в одну для превьюшки, вторую для полноразмерной картинки. И уже после этого показывать их. var newClip = _root.createEmptyMovieClip(prelInstName, d1); mcl.loadClip("images/mno"+i+".jpg", newClip); newClip._x = x_prelCoordinate; x_prelCoordinate = newClip._x + dx; newClip._y = 5; var bmd = new BitmapData(100, 60, true, 0x00000000); bmd.draw(newClip,mtrx,null,"normal",null,true); И еще добавлю: Не стоит "нагромождать" код. Пишите функции под конкретные нужды. Сейчас у вас идет куча разнотипных действий и несколько схожих переменных (prelInstName, prewInstName, prevInstName) — это сложно понять и сложно в этом разобраться.
__________________
hauts.ru Последний раз редактировалось Hauts; 15.02.2011 в 20:35. |
|
|||||
|
Модрон-ветеринар
|
Hauts, а зачем столко MovieClipLoader'ов? Вполне достаточно одного, ровно как и обработчика тоже. В обработчике onLoadInit всегда есть ссылка на контейнер, куда загружали изображение. В цикле только создание контейнера и loadClip и всё, то что действительно уникально.
__________________
Идите первым! Последний раз редактировалось mooncar; 15.02.2011 в 19:38. |
![]() |
![]() |
Часовой пояс GMT +4, время: 23:41. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|