Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript (http://www.flasher.ru/forum/forumdisplay.php?f=5)
-   -   Импорт картинок Swf'ом (http://www.flasher.ru/forum/showthread.php?t=45092)

AlexSm 19.05.2003 21:08

Re: Re: Ээ.. пардон тему не я начал... но...
 
Цитата:

Оригинал написал(а) Nox Noctis
вот эти две фразы как нельзя более точно отражают суть :)) (только без воскличательных и вопросительных знаков :) )

для функции таргет.лоадМуви(...) - таргет это мувиклип, содержимое которого будет ПОЛНОСТЬЮ заменено на то, что грузится... узнать что что-то полностью загрузилось можно при помощи веревочной петли и палки :))
(getBytesLoaded и getBytesTotal)

...это если ручками пустой клип сделать - то 4... а если программно - то 0 :)

вот, держите пример :)


Спасибо!
Этот способ похож на 5ый флеш.
А как я заранее узнаю размер картинки в байтах????
И вообще это извращенство.

А в MX-е черным по белому в хелпе написан пример на onData,
где трейсернуться мувик должен после загрузки в myMovieClip некого image.jpg

Посмотрите сами!

Причем написано что onLoad какбы предназначен для определения что докачалось до нужного фрейма (тоесть типа как я понял в том фрейме где он стоит - там и отрабатывает), а типа onData предназначен для загрузки вариаблесов, ХМЛев и мувиков с картинками. в помощи так написано!!!!
Ну посмотрите сами.

AlexSm 19.05.2003 22:29

Извращения.....
 
Посмотрел приложенный пример.

Вопрос такой:
Я гружу произвольный jpg и мне надо узнать его размеры и навесть на мувик, в который загрузилась картинка onMouseOver

(заранее размеры картинки незнаю, в параметрах передавать не собираюсь)

Любой извращенческий способ спасет не отца не русской не демократии.

Nox Noctis 20.05.2003 01:56

Re: Re: Re: Ээ.. пардон тему не я начал... но...
 
2AlexSm
сударь, вы меня не слушаете... :)
...а так же вы не слушаете драг ечей TTS, и llllllllll :)

первое:
событие онДата работает двумя разными способами:
1. если грузим переменные, то оно срабатывает ОДИН раз, когда все закканчивает грузиться...
2. если грузим .свф или .джпг - то оно срабатывает НЕСКОЛЬКО раз по ходу загрузки, когда приходит порция данных...
(см. хэлп - там это все написано :) )

второе:
функция getBytesTotal как раз и позволяет определить размер грузимой картинки в байтах. его не нужно знать заранее: сначала командуем загрузку, а потом уже спрашиваем какого размера грузимый файл...

в моем примере сделано то, что просил автор темы (если я его правильно понял :) ): сначала читаем фалик с именами картинок, а потом грузим их и расставляем по нужным координатам... ответ на твой вопрос в этом примере тоже есть :)

1. начинаем грузить (таргет.лоадМуви(такой-то.джпг))
2. создаем функцию онЕнтерФрейм, которая смотрит каков общий размер того, что мы грузим и того что уже загрузилось (getBytesTotal и getBytesLoaded соответственно)
3. когда загруженное количество байт становится равным общему - присваиваем клипу обработчик, после чего удаляем функцию онЕнтерФрейм за ненадобностью

так, что не понятно ? :)

Xarsok X 20.05.2003 20:51

Цитата:

Оригинал написал(а) Nox Noctis
2korkiss
Код:

mc = new MovieClip();
mc.loadMovie("image.jpg");

...я бы не стал :))

2Xarsok X
1. дожидаешься загрузки имен картинок из текстового файла
2. для каждой картинки делаешь следующее:


...а теперь: какой именно из шагов вызывает трудности ? :)

— создаешь клип, в который будешь грузить
— грузишь при помощи лоадмуви
— дожидаешься окончания загрузки
— выставляешь
как ? :confused:

AlexSm 20.05.2003 21:43

Да, хреново дело.
 
А как узнать, что картинки такой нет ?
Тоесть я допустим думаю что она есть, а ее нет, или она битая, как узнать что все хреново ?

Nox Noctis 20.05.2003 22:54

Цитата:

Оригинал написал(а) Xarsok X
как ? :confused:
что "как" ?.. я же дал пример того как именно все это можно сделать...
хорошо - что именно не ясно из примера ? :))

2AlexSm
если файл не найден либо содержит что-то негрузимое флэшем - то target.getBytesTotal() вернет -1...
так что все просто - если размер файла меньше нуля - то прелоад можно сразу отключить...

Useless 21.05.2003 14:53

Цитата:

Оригинал написал(а) Nox Noctis

если файл не найден либо содержит что-то негрузимое флэшем - то target.getBytesTotal() вернет -1...
так что все просто - если размер файла меньше нуля - то прелоад можно сразу отключить...
Протестую!

По моим наблюдениям (сделанным в трезвом виде, хорошо выспавшись :) ) - getBytesTotal() претерпевает следующие метаморфозы: сразу после вызова mc.loadMovie() кажет размер исходного свиффа (того, в который грузим), затем (видимо, когда соединение с сервером установлено, но заголовок ответа ещё не пришёл) становится равным -1, а после прихода заголовка - уже выдаёт реальную цифру.

Nox Noctis 21.05.2003 15:26

2Useless
хм. я тоже проверял...
мне ни разу не удалось добиться того, чтобы минус единица выскочила между размером того что было и того что грузится... :rolleyes:

в первый момент и правда скорее всего будет показан размер существующего таргета...
но в данном-то случае све грузится в .createEmptyMovieClip() - размер которого ноль, так что это ничего не меняет.

Xarsok X 28.05.2003 20:53

Цитата:

что "как" ?.. я же дал пример того как именно все это можно сделать...
А как эти картинки затолкать в муви клип
(просто надо сделать прокрутку картинок)

Xarsok X 16.06.2003 19:36

Ок все получилось, но как на эти картинки поставить ссылку
и сделать скроллинг


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

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