Просмотр полной версии : Подгрузка картинок
jatolkoposmotret
26.05.2009, 22:27
Здравствуйте. Подскажите такой вопрос. Вот если я подгружаю внешний jpg ,
_root.sc1.photo1.loadMovie("http://my_site/user_photo/1.jpg");
то он грузится в экземпляр мувика. А можно ли сделать так, что бы он загрузился раз и на всегда, во все сцены и мувики на ленте?
Не удаляйте контейнер с картинкой.
jatolkoposmotret
26.05.2009, 23:13
Спасибо, только мне это мало о чем говорит... Я в технологии flash совсем плаваю, а тем более в терминологии. Вот суть проблемы. Есть лента из нескольких клипов. в каждом клипе есть экземпляры символа. В одном из клипов происходит загрузка внешней картинки. Куда её нужно загрузить, что бы она появилась во всех клипах и экземплярах этого символа? Я пока нашел только как загрузить её в зкземпляр, а как в главный? Или это и есть контейнер? Тогда как мне достучаться до него из мувика?
джонатан
27.05.2009, 01:54
В самый глубокий.
jatolkoposmotret
27.05.2009, 12:21
Спасибо, очень информативно. Что есть самый глубокий?
Добавлено через 1 час 14 минут
Неужели на таком большом форуме никто не знает ответ на такой простой вопрос? Или тут можно только задать его, лишь бы было...
Ну почему у меня подгрузка в мувик идет только в один слой, а все экземпляры в других слоях молчат? Как написать, что бы загрузить картинку во все экземпляры?
джонатан
Я сам консультирую на нескольких форумах PHP, но ни сам, ни кто то из моих знакомых ни разу не ответили такой откровенной издевкой. Действительно хочется убить, лучше бы промолчал.
Wlspartak
27.05.2009, 14:38
Пример из справочника может поможет:
Пример
Следующий код создает новый пустой мувиклип и загружает в него JPEG изображение.
this.createEmptyMovieClip("logo_mc", this.getNextHighestDepth());
logo_mc.loadMovie("http://www.macromedia.com/images/shared/product_boxes/80x92/studio_flashpro.jpg");
Stargazer
27.05.2009, 15:27
Ну почему у меня подгрузка в мувик идет только в один слой, а все экземпляры в других слоях молчат? Как написать, что бы загрузить картинку во все экземпляры?
Вы ведь загружаете в один экземпляр, а не в весь класс. С чего бы в остальных экземплярах что-то менялось?
Если бы у меня стояла такая задача - я бы писал базовый класс для мувиклипа и в нём реализовал бы проверку: автоматическая подгрузка, если ни один экземпляр не имеет загруженного элемента, либо копирование этого элемента из другого клипа, если у кого-то он уже есть.
Неужели на таком большом форуме никто не знает ответ на такой простой вопрос?
Изначально я прочёл вопрос, но не понял и не нашёл смысла в вопросе ("сделать так, что бы он загрузился раз и на всегда, во все сцены и мувики"). Поэтому не стал отвечать - оставил тем, кто лучше поймёт, что вы хотели.
jatolkoposmotret
27.05.2009, 16:06
Спасибо, мне знакома ситуация, когда человек не понимает то, что спрашивает. Вот и я оказался в таком положении. Дело в том, что за если я смогу задать вопрос, который будет понятен, то я сам на него смогу ответить ))). А так как ничего пока не могу понять и задаю такие бестолковые вопросы. Конечно, это очень интересный язык и я обязательно его выучу со временем. Но разобраться в иерархиях, слоях, клипах и прочем после с тараканами "линейных" языков в голове очень сложно. А сделать надо и очень срочно.((
Задача у меня такая. Нужно прокручивать линейку картинок в цикле, подгружая их по мере появления с сервера. Как это сделать я знаю, и даже уже сделал. Но тут сложность в том, что это не просто прокрутка, а еще и анимация. То есть там куча экземпляров, разбросанных по слоям. Загружать в каждый экземпляр джипег с сервака не есть гут. Мне хотелось загрузить один раз, а дальше мувик запрашивает состояние, и если есть команда, перезагружает картинку во все экземпляры сразу.
Проблема в том, что пока эти экземпляры находятся в одном слое, все хорошо. А как только я пытаюсь навести красоту - все портится.
Может быть я зря паникую, просто не знаю механизма подкачки, реализованного во флэш, но интуитивно понимаю, что никакого кэша там нет, и за каждой картинкой он лезет на сервак. Примитивная логика подсказывает, что можно загрузить картинку куда то в одно место (подобие кэша), как в библиотеку. И обращаться уже туда. Но где это самое место хочь застрели не могу найти...
В аттаче два файла, первый работает, но он кривой. Второй такой, как мне надо, но не работает. Я наверняка перемудрил, но проще способа просто не знаю по неопытности. Если кого нибудь не сильно затруднит, гляньте плиз. Мне не надо готовых решений, мне только напрвление надо...
Может быть я зря паникую, просто не знаю механизма подкачки, реализованного во флэш, но интуитивно понимаю, что никакого кэша там нет, и за каждой картинкой он лезет на сервак.Примитивная логика подсказывает, что можно загрузить картинку куда то в одно место (подобие кэша), как в библиотекуЗа это отвечает браузер. За каждой файлом, флеш обращается к браузеру, а тот либо закачивает с сервера либо берет из своего кэша.
Однако с картинками, начиная с 8-го флеша, можно обойти данный путь петм использования BitmapData. Механизм следующий: пишется класс, который хранит урлы загруженных картинок. То есть, вы говорите ему, хочу картинку http://картинка1, класс смотрит, загружена ли такая, если нет, то грузит, записывает урл и делает битмап (об этом ниже), если да - то возвращает битмап сразу.
Битмап делается так: создаете невидимый клип-контейнер, грузите в него картинку с помощью класса MovieClipLoader. По наступлению события MovieClipLoader.onLoadInit определяете размеры загруженной картинки, создаете по ним экземпляр BitmapData, потом с помощью метода BitmapData.draw снимаете картинку с контейнера, и аттачите битмпа куда нужно с помощью метода MovieClip.attachBitmap.
Ну или используете готовый BitmapLibrary (http://www.sharedfonts.com/BitmapLibrary.zip) :)
jatolkoposmotret
27.05.2009, 18:30
А разве браузер кэширует картинки, запрошенные flash?
Хороший класс, спасибо, но так я и не понял, как его прикрутить к моему случаю. Вся беда в том, что как я понял (может и не верно), по этой схеме замена происходит в момент появления экземпляра на свет, причем в каждый экземпляр. Тогда она может измениться в поле видимости. А мне нужно за кадром, загрузить один раз, прогнать по кругу, потом проверить, изменилось ли что на сервере и если изменилось, загрузить новую. Потом опять прогнать её по кругу. И так далее. Это работает, когда мувики в одном слое, а как разбросать их я так и не понял.
Спасибо за участие, но видно не судьба. Оно и немудрено, разобраться в этом при трех днях знакомства с flash...
Буду искать другую реализацию, потом может и разберусь.
Stargazer
27.05.2009, 19:22
А разве браузер кэширует картинки, запрошенные flash?
А почему это так странно?
За каждой файлом, флеш обращается к браузеру, а тот либо закачивает с сервера либо берет из своего кэша.
jatolkoposmotret
27.05.2009, 19:33
А почему это так странно?
Мне просто казалось, что флэш-проигрыватель самодостаточен... Ну да не суть важно. Мне это все равно не поможет.
Добавлено через 4 часа 26 минут
Скажите, а можно один мувик затолкать в другой? Не внешний, а просто с другого уровня. Я знаю что наверняка можно, но вопрос видимо на столько простой, что ни в хэлпе ни на форуме ни в гугле не нашел ответа. Везде либо внешние, либо XML, либо еще чего...
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.