Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Подгрузка картинок (http://www.flasher.ru/forum/showthread.php?t=125550)

jatolkoposmotret 26.05.2009 22:27

Подгрузка картинок
 
Здравствуйте. Подскажите такой вопрос. Вот если я подгружаю внешний jpg ,
Код AS1/AS2:

_root.sc1.photo1.loadMovie("http://my_site/user_photo/1.jpg");

то он грузится в экземпляр мувика. А можно ли сделать так, что бы он загрузился раз и на всегда, во все сцены и мувики на ленте?

iNils 26.05.2009 22:49

Не удаляйте контейнер с картинкой.

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 изображение.

Код AS1/AS2:

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

Вложений: 1
Спасибо, мне знакома ситуация, когда человек не понимает то, что спрашивает. Вот и я оказался в таком положении. Дело в том, что за если я смогу задать вопрос, который будет понятен, то я сам на него смогу ответить ))). А так как ничего пока не могу понять и задаю такие бестолковые вопросы. Конечно, это очень интересный язык и я обязательно его выучу со временем. Но разобраться в иерархиях, слоях, клипах и прочем после с тараканами "линейных" языков в голове очень сложно. А сделать надо и очень срочно.((
Задача у меня такая. Нужно прокручивать линейку картинок в цикле, подгружая их по мере появления с сервера. Как это сделать я знаю, и даже уже сделал. Но тут сложность в том, что это не просто прокрутка, а еще и анимация. То есть там куча экземпляров, разбросанных по слоям. Загружать в каждый экземпляр джипег с сервака не есть гут. Мне хотелось загрузить один раз, а дальше мувик запрашивает состояние, и если есть команда, перезагружает картинку во все экземпляры сразу.
Проблема в том, что пока эти экземпляры находятся в одном слое, все хорошо. А как только я пытаюсь навести красоту - все портится.
Может быть я зря паникую, просто не знаю механизма подкачки, реализованного во флэш, но интуитивно понимаю, что никакого кэша там нет, и за каждой картинкой он лезет на сервак. Примитивная логика подсказывает, что можно загрузить картинку куда то в одно место (подобие кэша), как в библиотеку. И обращаться уже туда. Но где это самое место хочь застрели не могу найти...
В аттаче два файла, первый работает, но он кривой. Второй такой, как мне надо, но не работает. Я наверняка перемудрил, но проще способа просто не знаю по неопытности. Если кого нибудь не сильно затруднит, гляньте плиз. Мне не надо готовых решений, мне только напрвление надо...

iNils 27.05.2009 16:20

Цитата:

Может быть я зря паникую, просто не знаю механизма подкачки, реализованного во флэш, но интуитивно понимаю, что никакого кэша там нет, и за каждой картинкой он лезет на сервак.Примитивная логика подсказывает, что можно загрузить картинку куда то в одно место (подобие кэша), как в библиотеку
За это отвечает браузер. За каждой файлом, флеш обращается к браузеру, а тот либо закачивает с сервера либо берет из своего кэша.

Однако с картинками, начиная с 8-го флеша, можно обойти данный путь петм использования BitmapData. Механизм следующий: пишется класс, который хранит урлы загруженных картинок. То есть, вы говорите ему, хочу картинку http://картинка1, класс смотрит, загружена ли такая, если нет, то грузит, записывает урл и делает битмап (об этом ниже), если да - то возвращает битмап сразу.

Битмап делается так: создаете невидимый клип-контейнер, грузите в него картинку с помощью класса MovieClipLoader. По наступлению события MovieClipLoader.onLoadInit определяете размеры загруженной картинки, создаете по ним экземпляр BitmapData, потом с помощью метода BitmapData.draw снимаете картинку с контейнера, и аттачите битмпа куда нужно с помощью метода MovieClip.attachBitmap.

Ну или используете готовый BitmapLibrary :)

jatolkoposmotret 27.05.2009 18:30

А разве браузер кэширует картинки, запрошенные flash?
Хороший класс, спасибо, но так я и не понял, как его прикрутить к моему случаю. Вся беда в том, что как я понял (может и не верно), по этой схеме замена происходит в момент появления экземпляра на свет, причем в каждый экземпляр. Тогда она может измениться в поле видимости. А мне нужно за кадром, загрузить один раз, прогнать по кругу, потом проверить, изменилось ли что на сервере и если изменилось, загрузить новую. Потом опять прогнать её по кругу. И так далее. Это работает, когда мувики в одном слое, а как разбросать их я так и не понял.
Спасибо за участие, но видно не судьба. Оно и немудрено, разобраться в этом при трех днях знакомства с flash...
Буду искать другую реализацию, потом может и разберусь.


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

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