PDA

Просмотр полной версии : loadmovie ?


Skinner
04.11.2004, 03:24
Блин! понятно как проверить загрузился ли мувик, если известен его размер, а если нет?
да и мувиков несколько десятков?

createEmptyMovieClip("predm" add i, i);
loadmovie("predmet.swf", "predm" add i);

eval("predm" add i add ".predmet1")._visible=true;
eval("predm" add i add ".predmet1").gotoandstop(predmet[i]);

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

FreeLander
04.11.2004, 10:56
да, не работает действительно из-за того что мувики не успевают загрузится.
используй для загрузки мувиков MovieClipLoader class.
в его объектах есть событие окончания загрузки мувика, на него и вешаешь изменение св-в.

PS eval не юзай - bad style)

kpa.person
04.11.2004, 11:55
Размер может стать известным благодаря getBytesTotal(),
но так как оно не всегда возвращает корректное
значение из-за задержек при загрузке. А точнее
оно может возвратить "0", при определенных проблемах
с соединением (медленный сервер, задержки).
Поэтому лучше всего добавить дополнительное условие,
чтобы избежать такого совпадения:

if(this.mc.getBytesLoaded() > 3 &&
this.mc.getBytesLoaded() == this.mc.getBytesTotal()){
....
}

Antares
04.11.2004, 17:07
При создании сайта, где много чего грузится, MovieClipLoader куда полезнее.

Вот мини-тутор (http://forums.ultrashock.com/forums/showthread.php?s=&threadid=54891) на Ультрашоке.

FreeLander
04.11.2004, 17:21
Оригинал написал(а) Bad Habit
Вот мини-тутор (http://forums.ultrashock.com/forums/showthread.php?s=&threadid=54891) на Ультрашоке. чего-то там этот bluebox не то говорит - в документации всё кажись понятно по мувиклиплоадеру

Skinner
04.11.2004, 18:18
Спасибочки. С Вашей помощью проблема решена довольно успешно.
Кстати, а почему eval - плохо?
Вроде работает. Писал сперва типа так:
setProperty("/pip" add i, _x, nx);
Но не смог прописать gotoandstop().

artfla$her
05.11.2004, 03:13
eval вообще лучше применять, если надо перевести запись со слэшем в запись с точкой (случаи редкие, вроде _droptarget-а).

Про property ничего не понял =) Кстати и add тогда тоже
bad style, раз уж на то пошло.

nuran
05.11.2004, 04:25
Так, вот ненадо пи@#еть что eval - плохо, кто мне это докажет и обоснует?
И чем он лучше this?

FreeLander
05.11.2004, 10:34
:eek: а Нуран плохое слово сказал :eek: :eek:
:D :D :D :D

artfla$her
05.11.2004, 14:57
И чем он лучше this?

а при чем тут именно this ? Или я чего-то недогоняю?

З.Ы. Может, мнение о том, что eval плохо, сложилось потому, что eval - функция, тогда как вместо ее вызова можно просто обратится к ключу через <объект>[<ключ/свойство/объект>] ?

Skinner
05.11.2004, 15:10
и как же без eval написать
eval("predm" add i add ".predmet1").gotoandstop(i);
И кстати чтобы оно работало?

FreeLander
05.11.2004, 20:00
Оригинал написал(а) Skinner
и как же без eval написать
eval("predm" add i add ".predmet1").gotoandstop(i);
И кстати чтобы оно работало? createEmptyMovieClip возвращает ссылку на вновь созданный мувик, так что вот так: myMovie_mc=createEmptyMovieClip("predm" add i, i);

я обычно вообще такие мувики в массив пихаю, по мне так с массивом работать гораздо приятнее чем каждый раз евал-ом имена их лепить)
movieClips_array = new Array;
for (var i=0; i<10; i++){
depth=_root.getNextHighestDepth();
movieClips_array.push(_root.createEmptyMovieClip("clip_mc"+String(depth), depth));
}

trace (movieClips_array);

dimarik
05.11.2004, 20:05
... eval("predm" add i add ".predmet1").gotoandstop(i);

i = 1;
_root["predm"+i].predmet1.gotoAndStop(i);

Вариант:
i = 1;
ref = _root["predm"+i];
ref2 = ref["predmet1"];
ref2.gotoAndStop(i);

Skinner
05.11.2004, 22:25
Пасибо. Попробую, поюзаю, потестирую..

nuran
05.11.2004, 22:51
Оригинал написал(а) Skinner
и как же без eval написать
eval("predm" add i add ".predmet1").gotoandstop(i);
И кстати чтобы оно работало?

Смотря какой версией flash ты пользуешься. Можно вот так:
this['predm' + i + '.predmet1'].gotoandstop(i);

Skinner
06.11.2004, 11:16
Попробовал, работает. Переписал всю сотню евалов в [..] в своем www.deepworld.ru
Прада изменений незаметил. Кто его знает сколько операций занимает та или иная запись.
Есть подозрение, что флешка при преобразовании в swf должна сама представлять эту запись в лучшем виде, хотя...