Просмотр полной версии : загрузка jpeg
генерю динамически клип.
в него делаю loadMovie с картинкой.
далее мне надо правильно расположить эту картинку.
и тут большой трабл - не могу получить размеры картинки (то есть этого клипа).
вполне ясно, что скрипт проигрывается сразу и после этого какое-то время грузится jpeg, и поэтому не имеет смысла ловить размеры сразу, исходя из этого, я сделал onLoad и onData, но они не работают, как оказалось jpeg при загрузке замещает полностью исходный клип , т. к срабатывает только onUnload (и соответственно до загрузки jpeg)
Как получить размеры.
неужели нужно делать многофреймовый клип и туда грузить?
Nox Noctis
16.09.2002, 00:58
в любом случае придется как-то отлавливать окончание загрузки... без этого никак :)
а сделать это можно сотней разных способов...
ты можешь внутрь загружаемого клипа скрипт написать ?
имею в виду - внутрь той свф с картинкой...
тогда проще всего поставить там, скажем, вызов функции из рута...
а в функции этой прописать все что нужно...
...тогда тебе не придется в основном ролике добавлять кадров,
или использовать онЕнтерФрейм для проверки загруженности...
Ушёл о т этой траблы так:
1.Создал *.swf файл таких же размеров как и и сходный.
2.И загрузил в исходный файл нужную картинку, которая сохранена в *.swf.
3.В загружаемом файле расположил картинку так, как мне нужно по отношению к элементам основного мувика. Но только не забудь грузить *.swf на другой уровень, иначе картинка загрузится вместо основного мувика.
Nox Noctis
16.09.2002, 01:11
или у тебя МХ и ты грузишь прям джпег, без свфки ?
тогда при начале загрузки свойства ширины и высоты скидываются в ноль...
значит можно написать
какой_то_клип.onEnterFrame = function () {
if (таргет_загрузки._width && таргет_загрузки.getBytesLoaded()) {
// действия
// ...............
delete this.onEnterFrame;
}
}
у меня mx.
frame_holder.createEmptyMovieClip("pic",14);
frame_holder.pic.onEnterFrame = function(){
trace(this._name + " :" + this._width);
};
frame_holder.pic.loadMovie("http://bla.bla/" + somepic);
вотэтот код.
повторю, клип я создаю динамически.
ширина получается нулевая при всех опробованных обработчиках.
мало того onEnterFrame должен постоянно посылать ширину, но он это делает один раз, очевидно до того, как начнёт загружацца картинка.
Как я уже писал срабатывает ещё и onUnload то есть создаётся ощущение, что все обработчики стираются в тот момент, когда начинает загружаться картинка.
Совсем в тупик поставила ещё одна проверка.
Мы знаем, что загружаемый клип наследует св-ва и т д.
ставим сразу после createEmpty.. frame_holder.pic._visible = false;
не работает.
ставим туда же
frame_holder.pic._alpha =0;
работает.
пипец.
Nox Noctis
16.09.2002, 02:28
Оригинал написал(а) MainD
создаётся ощущениепотрясающее ощущение... :p
вообще-то так и есть... :)
и то, что ширина изначально тоже ноль - ничего не меняет...
условие
if (таргет_загрузки._width && таргет_загрузки.getBytesLoaded()) {
как раз и ловит момент, когда появляется отличное от нуля свойство _ширина + файл грузился
значить рассказываю в чём здесь дело для всех ехидных и не очень:
если мы хотим, чтобы картинка сама спозиционировалась, то :
мы все не можем сделать то, что предлагает нам Noctis по
простой причине - oEnterFrame будет работать только тогда, когда в клипе БОЛЬШЕ чем один фрейм, в противном случае, он срабатывает только один раз.
необходимо делать пустой клип в lib с linkage, состоящий из 2 фреймов.
на второй фрейм ставим условие, если есть координата ( или всё что угодно), то стоп.
приаттачивая его, мы в создаём внутри клип с пом. createEmpty.. и внего грузим картинку.
всё.
2NoxNoctis: ты проверяешь, то что постишь?
Nox Noctis
16.09.2002, 03:38
во-первых - ехидства пока что не было...
счас исправим это досадное недоразумение :)
второе:
Оригинал написал(а) MainD
onEnterFrame будет работать только тогда, когда в клипе БОЛЬШЕ чем один фрейм, в противном случае, он срабатывает только один разооо... серьезно ?.. :))))
на что спорим, что это - Л А Ж А (четыре буквы, два слога) ?
только давай сначала поспорим, а потом будешь проверять, что же это ты такое сказал, ладно ?
третее:
в библиотеке ничего создавать не надо...
поскольку все свойства и методы стираются в клипе после вызова лоадМуви,
то вешать онЕнтерФрейм на таргет клип бессмысленно
...но никто же не мешает создать тебе еще один клип
control = this.createEmptyMovieClip("bla-bla-bla", 666);
и повесить онЕнтерФрейм со всеми необходимыми проверками на него,
а после загрузки его ремувить за ненадобностью
и последнее:
без обид...
я когда что-то пишу в этом разделе - как правило сначала проверяю
(хотя в данном случае это не нужно - я з н а ю как это работает)
хорошо бы сначала подумать, а потом хамить...
думать что говоришь и говорить что думаешь - не одно и то же...
тсссс, мой друг, спокойно.
не надо так горячиться.
Оригинал написал(а) MainD
oEnterFrame будет работать только тогда, когда в клипе БОЛЬШЕ чем один фрейм, в противном случае, он срабатывает только один раз.
если ты будешь в следующий раз меня цитировать, то вырезай буквами, и составляй слова , желательно матом.
все видели строчку loadMovie.
значит onEnterFrame не будет работать так, как он должен, а будет так, как я написал.
видишь ли, несдержанность - это порок.
RTFM : ехидство, хамство.
а вариант с контрольным клипом, это интересно. стоило, может быть написать это сначала , поскольку, как мне кажется, это единственная твоя мысль по делу в этом треде.
спасибо.
Nox Noctis
16.09.2002, 04:20
менторский тон - это хорошо :)
со времен гревних дреков ничего по части полемических приемов не изменилось :)
все видели строчку loadMovie.
значит onEnterFrame не будет работать так, как он должен, а будет так, как я написал_что_это_значит_ ?
я тебя не понял - объясни пожалуйста :)
кажется, это единственная твоя мысльключевое слово - "кажется"
см. мое второе и третее сообщение.
до того, как ты написал о том, что ентерФрейм убивается при вызове лоадМуви,
мне и в голову не пришло, что это не очевидно :)
(чес слово... без выпендривания - я этого не ожидал :) )
"какой_то_клип" во втором сообщении как раз и означало, что ты повесишь этот обработчик НЕ на тот же клип, в который грузишь...
я тоже думал о греках, когда писал, но за такую полемику, меня бы избили, ровно как и тебя... ;)
Оригинал написал(а) Nox Noctis
_что_это_значит_ ?
я тебя не понял - объясни пожалуйста :)
если не срабатывает onLoad, onData и срабатывает onUnload
на клипе, после создания которого туда грузится картинка ( и как ни странно, не полностью выполняется наследование (это надо ещё проверить)) - то напрашивается только одна мысль, та же что и тебе: загружаемый - стирает обработчики.
но вот как решить эту проблему с динамическими клипами, я не допёр сразу, поэтому сделал 2фреймовый клип в lib а в нём уже создавал динамически...
Nox Noctis
16.09.2002, 14:01
ну вот видишь :)
можно оказывается говорить спокойно...
...просто меня до скрипа зубов раздражает, когда сразу выдаешь решение, а тебя начинают
тыкать носом в твои якобы ошибки в элементарных вещах :)
начинаю нервничать иногда :) особенно если разговор происходит среди ночи :)
только я все равно не понял что у тебя была за мысль про ентерфрейм...
при чем тут онанлоад и прочее ?... ;)
ну да ладно, не суть важно :) главное - цель достигнута :)
зы: из всего этого очень поучительный вывод: ночью надо СПАТЬ 8))))
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.