![]() |
Загрузка и присоединение картинок
Код:
someclass { |
Не очень ясна задача. Предзагрузку сделать не проблема. Позиционировать тоже. Но что значит "отображать m1 на мувике display" -- ? Поместить внутрь него нельзя -- только загружать в заранее соданный в нем.
К слову говоря, в AS3 можно любой визуальный объект прицепить любому -- очень удобно :) |
Цитата:
Для хранения загруженных объектов в памяти можно использовать 2 массива - массив строк для текста и массив мувиков для картинок. Если при отображении объекта для массива текста всё ясно, то для массива мувиков не совсем... Можно: 1) создать n мувиков, используя createEmptyMovieClip(), выставить им _visible = false, загрузить в них картинки, и при отображении прятать предыдущий мувик, вычислять и выставлять следующему мувику правильные координаты (ибо они постоянно динамически изменяются), показывать его. 2) (то, что я коряво пытался объяснить в первом посте) объявить n мувиков, загрузить в них требуемые картинки, создать один мувик привязанный к какой-то шкале, который сам будет следить и передвигаться в нужные координаты, и при отображении - копировать/переносить/ещечтото мувик с картинкой из памяти в отображаемый мувик Если (1) реализуемо, но не очень красиво, то на счет реализуемости (2)-ого я сомневаюсь. Я не флешер, поэтому возможно запутался в каких-то элементарных вещах, отсюда и вопрос. |
если для 8-ки и подгружаем только изображения, то можно такой подход:
-грузим во временные мувики картинки из переданного массива урлов -изображение копируем в BitmapData,кладем ссылку в массив, мувики удаляем -как загрузятся все, вызываем метод onLoad дальше по мере надобности аттачим из массива нужный битмап куда надо.. Код:
import flash.display.*; |
Цитата:
|
to vecalion:
боюсь показаться слишком умным =), но 2-ой способ отлично работает... при некоторых условиях =) Итак: Грузишь картинки в невидимые (находящиеся за сценой или _visible = false) мувики. Делаешь мувик, который будет отображать эти картинки (следишь за его координатами, если тебе надо, и т.д.). Невидимые мувики после загрузки картинок просто-напросто удаляешь. И всё. Грузишь по нажатию на кнопку нужную картинку в тот самый мувик, что создал для этого. Фишка: CACHE ON! Если ты не используешь при загрузке картинок приёмы, запрещающие их кэширование, то, я думаю, доли секунды, которые потребуются браузеру, чтоб достать из кэша твои картинки -- вполне приемлемая цена за то, чтоб обойтись без использования 8-го Флэша. |
nyctota предложил хороший вариант, я тоже в большинстве проектов так делаю %))), хотя бывают делал и такой вариант( работает для большинства случаев, и немного геморно бывает с координатами):
создаютется нужное для картинок число мувиков которые лепяться к руту, ну или в какой нить мувик к которому потом могут "достучаться", мувики "контейнеры", и этим "контейнерам" , передаеться ссылка не на саму картинку, а на мув прикрепленный к руту, и контейнер делает с ним свои дела %)) |
2 silin
Слушай... я новичок... у меня не получается это сделать, как в твоём коде... можешь дать fla файл посмотреть... нужная вещь, пытаюсь реализовать, а сделать не могу... подсказать некому... |
silin, подскажи плиз если не трудно как это всё использовать. Я пока ещё в темноте, а так хочется к свету. Если конкретно то как это всё размещать. Было бы супер если бы исходник. Для развития это супер. Заранее спасибо.
|
Вложений: 1
я же показал..,
или вы думаете что во фла что-то иначе.. |
Посмотрел, спасибо ты был прав понятнее не стало. Кроме того у тебя завязано на клике и случайном выборе публикуемых координат. А если нужно что бы в последствии подгружалось в мувик "image1, mage2 ..." в определённом месте как их привязать, вернее какой синтаксис в данном мувике без кликов для вывода картинки 01... 02..?
|
Silin, а если такая ситуация: через твой класс загрузили картинки, а затем идёт анимация, допустим одна картинка, потом вторая картинка, третья... вопрос в следующем: как привязать первую, 2, 3 картинки к этим мувикам которые публикуются под анимированными масками?
|
не надо усложнять:
есть массив битмапов (его и создает класс).. а дальше делай с ними(битмапами) что тебе надо : аттач в мувики(расположенные в определенном месте или не очень определенном, под маской или без и т.д.), меняй, трансформируй.. |
спасибо
|
2 silin
Слушай.... а может сделать в класс ещё переменные total, loaded, total_img (количество картинок) и loaded_img (количество уже загруженных картинок)? Чтоб в прелоадерах использовать. у меня не получается чего-то... |
не знаю, что и сказать: конечно можно..
если тебе удобнее хранить длину массива в классе или окончание определять флагом - ничто ж не мешает так и сделать.. |
Да как раз кол-во картинок не так важно... важнее сделать кол-во загруженных байт, всего байт.... чтоб прелоадер сделать.... у меня почему-то, не получается.... ошибку не пишет, но и не работает правильно
|
попробуй так:
грузим все картинки с помощью MovieClip.loadMovie во временные мувики по enterFrame (или setInterval) суммируем getBytesLoaded/getBytesTotal мувиков.. дальше, думаю, понятно.. |
да вроде понятно... я так и пробовал делать.... да не получается... ладно попробую дабить это... если что - буду вопросы задавать...
|
2 silin
Слушай, помоги пожалуйста... что-то не получается... Видимо из-за того что мувики удаляются или чёрт знает... максимум у меня в загрузчике около 1% показывалось, а потом глюки видимо... Думаю, я просто не в ту степь иду... Конечно, так нельзя, надо самому думать, но не мог бы ты написать, реализацию прелоадера? Ну вот смотри... простейшие вещи не получаются Код:
this.createTextField('tf',200,0,0,1000,100);//где посмотрим |
что у тебя происходит из этого куска кода не понять..
вариантов на самом деле может быть много, я бы так сделал: Код:
import flash.display.BitmapData;Код:
var picsUrl=["p0.jpg","p1.jpg","p2.jpg"];//url картинок |
Да, решение хорошее... Только почему-то не понятно: когда просто просмотр нажимаешь - пишет:
0/0 все.. И по нажатию не показывает картинок... Ну я думаю это мелочь, так как по любому будет загружаться не мгновенно! А решение onProgress(l,t), мне понравилось :) |
Слушай, а что означает n%=pl.length;? в часности (n%)
|
>>пишет 0/0 ..И по нажатию не показывает картинок...
видимо условия if(bt>0 && bl==bt) недостаточно.. >>то означает n%=pl.length;? n=n%pl.length |
| Часовой пояс GMT +4, время: 18:11. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.