Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript (http://www.flasher.ru/forum/forumdisplay.php?f=5)
-   -   загрузка jpeg (http://www.flasher.ru/forum/showthread.php?t=37207)

MainD 15.09.2002 22:13

загрузка jpeg
 
генерю динамически клип.
в него делаю loadMovie с картинкой.
далее мне надо правильно расположить эту картинку.
и тут большой трабл - не могу получить размеры картинки (то есть этого клипа).
вполне ясно, что скрипт проигрывается сразу и после этого какое-то время грузится jpeg, и поэтому не имеет смысла ловить размеры сразу, исходя из этого, я сделал onLoad и onData, но они не работают, как оказалось jpeg при загрузке замещает полностью исходный клип , т. к срабатывает только onUnload (и соответственно до загрузки jpeg)

Как получить размеры.
неужели нужно делать многофреймовый клип и туда грузить?

Nox Noctis 16.09.2002 00:58

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

ты можешь внутрь загружаемого клипа скрипт написать ?
имею в виду - внутрь той свф с картинкой...

тогда проще всего поставить там, скажем, вызов функции из рута...
а в функции этой прописать все что нужно...
...тогда тебе не придется в основном ролике добавлять кадров,
или использовать онЕнтерФрейм для проверки загруженности...

Ma)( 16.09.2002 01:04

Ушёл о т этой траблы так:
1.Создал *.swf файл таких же размеров как и и сходный.
2.И загрузил в исходный файл нужную картинку, которая сохранена в *.swf.
3.В загружаемом файле расположил картинку так, как мне нужно по отношению к элементам основного мувика. Но только не забудь грузить *.swf на другой уровень, иначе картинка загрузится вместо основного мувика.

Nox Noctis 16.09.2002 01:11

или у тебя МХ и ты грузишь прям джпег, без свфки ?
тогда при начале загрузки свойства ширины и высоты скидываются в ноль...

значит можно написать

какой_то_клип.onEnterFrame = function () {
if (таргет_загрузки._width && таргет_загрузки.getBytesLoaded()) {
// действия
// ...............
delete this.onEnterFrame;
}
}

MainD 16.09.2002 01:35

у меня 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()) {

как раз и ловит момент, когда появляется отличное от нуля свойство _ширина + файл грузился

MainD 16.09.2002 02:44

значить рассказываю в чём здесь дело для всех ехидных и не очень:

если мы хотим, чтобы картинка сама спозиционировалась, то :

мы все не можем сделать то, что предлагает нам Noctis по
простой причине - oEnterFrame будет работать только тогда, когда в клипе БОЛЬШЕ чем один фрейм, в противном случае, он срабатывает только один раз.

необходимо делать пустой клип в lib с linkage, состоящий из 2 фреймов.
на второй фрейм ставим условие, если есть координата ( или всё что угодно), то стоп.
приаттачивая его, мы в создаём внутри клип с пом. createEmpty.. и внего грузим картинку.

всё.

2NoxNoctis: ты проверяешь, то что постишь?

Nox Noctis 16.09.2002 03:38

во-первых - ехидства пока что не было...
счас исправим это досадное недоразумение :)

второе:
Цитата:

Оригинал написал(а) MainD
onEnterFrame будет работать только тогда, когда в клипе БОЛЬШЕ чем один фрейм, в противном случае, он срабатывает только один раз
ооо... серьезно ?.. :))))
на что спорим, что это - Л А Ж А (четыре буквы, два слога) ?
только давай сначала поспорим, а потом будешь проверять, что же это ты такое сказал, ладно ?

третее:
в библиотеке ничего создавать не надо...
поскольку все свойства и методы стираются в клипе после вызова лоадМуви,
то вешать онЕнтерФрейм на таргет клип бессмысленно
...но никто же не мешает создать тебе еще один клип
control = this.createEmptyMovieClip("bla-bla-bla", 666);
и повесить онЕнтерФрейм со всеми необходимыми проверками на него,
а после загрузки его ремувить за ненадобностью

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

MainD 16.09.2002 04:08

тсссс, мой друг, спокойно.
не надо так горячиться.

Цитата:

Оригинал написал(а) MainD
oEnterFrame будет работать только тогда, когда в клипе БОЛЬШЕ чем один фрейм, в противном случае, он срабатывает только один раз.
если ты будешь в следующий раз меня цитировать, то вырезай буквами, и составляй слова , желательно матом.

все видели строчку loadMovie.
значит onEnterFrame не будет работать так, как он должен, а будет так, как я написал.

видишь ли, несдержанность - это порок.

RTFM : ехидство, хамство.

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

спасибо.

Nox Noctis 16.09.2002 04:20

менторский тон - это хорошо :)
со времен гревних дреков ничего по части полемических приемов не изменилось :)
Цитата:

все видели строчку loadMovie.
значит onEnterFrame не будет работать так, как он должен, а будет так, как я написал
_что_это_значит_ ?
я тебя не понял - объясни пожалуйста :)
Цитата:

кажется, это единственная твоя мысль
ключевое слово - "кажется"
см. мое второе и третее сообщение.
до того, как ты написал о том, что ентерФрейм убивается при вызове лоадМуви,
мне и в голову не пришло, что это не очевидно :)
(чес слово... без выпендривания - я этого не ожидал :) )
"какой_то_клип" во втором сообщении как раз и означало, что ты повесишь этот обработчик НЕ на тот же клип, в который грузишь...


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

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