Форум 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)
-   -   AttachMovie и прелоадер(чтобы как можно раньше начался) (http://www.flasher.ru/forum/showthread.php?t=68623)

Psychocat 01.09.2005 03:37

AttachMovie и прелоадер(чтобы как можно раньше начался)
 
АтачМуви удобная функция, но я использую в основном Дубликэйт, потому что когда мувик грузится, то сначала я так понимаю грузятся linkage export for action script мувики. Особенно это касается звука, кот. может быть 500+ кб.
А можно ли сделать, чтобы всё таки флэш сначала первый кадр с прелоадером загрузил, а потом уже всё остальное.?? А то получается первые 150кб висит пустой экран.
Update:
Наконец-то я разобрался :) Там когда ставишь Linkage стоит галочка по умолчанию Export in first frame! Галочку нужно убрать.
Теперь я снова буду использовать attachMovie
Update:
Ещё немаловажно то, что все мувики которые планируется АтачМуви загружать должны где-то в уже присутствовать в timeline. Может я опять чего не понял, но у меня если их в на линейке, то они и не загружаются.

ffffff 01.09.2005 10:04

запихни лоадер в библиотеку! а вообще влэш сам выставляет что он поставит в начало свф и обычно он выставляет как раз те элементы, которые раньше всего будут требоваться.

Nео 01.09.2005 11:32

чтоб быстрее начался, лучше всего использовать внешний прелоадер!

iNils 01.09.2005 11:59

Цитата:

Сообщение от nео
чтоб быстрее начался, лучше всего использовать внешний прелоадер!

как раз хуже, в каждом подгружаемом мувике придется вставлять пролоадер

Nео 01.09.2005 12:16

Цитата:

Сообщение от iNils
как раз хуже, в каждом подгружаемом мувике придется вставлять пролоадер

возможно я не понял вопроса, но помоему здесь реч идет о том, что сначала должен закрузиться прелоадер, а потом остальной контент!
Поэтому я и советую сделать отдельным свф прелоадер, а потом в него грузить все остальное!

iNils 01.09.2005 12:43

Цитата:

Сообщение от nео
возможно я не понял вопроса, но помоему здесь реч идет о том, что сначала должен закрузиться прелоадер, а потом остальной контент!
поэтому я и советую сделать отдельным свф прелоадер, а потом в него грузить все остальное!

а зачем прелоадер подгружать, когда его можно сразу вставить в основной клип?

Nео 01.09.2005 13:20

Цитата:

Сообщение от iNils
а зачем прелоадер подгружать, когда его можно сразу вставить в основной клип?

блин.... теперь ты меня не понял :)
делаем так:
1)
Цитата:

А можно ли сделать, чтобы всё таки флэш сначала первый кадр с прелоадером загрузил, а потом уже всё остальное.?? А то получается первые 150кб висит пустой экран.
Первый кадр (с прелоадером) убираем нафиг!!! Остальное сохраняем! компилим!
2)делаем новый свф в котором пишем что-то вроде:
this.createEmptyMovieClip("preloader_mc", this.getNextHighestDepth());
this.preloader_mc.createTextField("percentReadout_txt", this.preloader_mc.getNextHighestDepth(), 0, 0, 50, 20);
//_root.attachMovie("preloader", "preloader_mc", 0);
preloader_mc._x = 300;
preloader_mc._y = 200;
var s = this.createEmptyMovieClip("swfProxy_mc", 1);
var my_mcl = new MovieClipLoader();
myListener = new Object();
myListener.onLoadStart = function(target_mc) {
var loadProgress = my_mcl.getProgress(target_mc);
var percent = "0";
preloader_mc.percentReadout_txt.text = percent+"%";
};
myListener.onLoadProgress = function(target_mc, loadedBytes, totalBytes) {
var percent = Math.round(loadedBytes/totalBytes*100);
preloader_mc.percentReadout_txt.text = percent+"%";
};
myListener.onLoadComplete = function(target_mc) {
var loadProgress = my_mcl.getProgress(target_mc);
var percent = Math.round(loadProgress.bytesLoaded/loadProgress.bytesTotal*100);
preloader_mc.percentReadout_txt.text = "done";
};
myListener.onLoadInit = function(target_mc) {
target_mc.play();
_root.preloader_mc.removeMovieClip();
};
my_mcl.addListener(myListener);
my_mcl.loadClip("http://.../my_swf.swf?"+Math.random()*100, s);

Psychocat 01.09.2005 14:33

Хм... Внешний прелоадер. Надо попробовать, но это не очень хороший вариант. Когда мои игрушки будут ставить на других сайтах, там вообще прелоадера не будет.
Наконец-то я разобрался! Там когда ставишь Linkage стоит галочка по умолчанию Export in first frame! Так я думал, что это значит, что мувик будет загружаться и играться с первого кадра.
P.S.
Neo ты код писал для AS2? Я пока на флэш МХ. У меня таких штуковин, как getNextHighestDepth() loadClip() нету :(
Спасибо!

Бармалей 01.09.2005 14:52

getNextHighestDepth() - это шестерка,
класс MovieClipLoader - семерка

Nео 01.09.2005 14:52

Цитата:

Сообщение от Psychocat
Хм... Внешний прелоадер. Надо попробовать, но это не очень хороший вариант. Когда мои игрушки будут ставить на других сайтах, там вообще прелоадера не будет.

Ну тогда конечно не подходит!
Цитата:

Сообщение от Psychocat
P.S.Neo ты код писал для AS2? Я пока на флэш МХ. У меня таких штуковин, как getNextHighestDepth() loadClip() нету :(
Спасибо!

Да. Если работаешь с шестеркой, то можно использовать вместо каласса MovieClipLoader loadMovie, а вместо getNextHighestDepth() просто ставить уровни (хотя в шестерке getNextHighestDepth() помоему есть, но может я и ошибаюсь :) ), но луше поставь 2004 MX, тем более, что уже есть 8-й флэш!

Psychocat 01.09.2005 15:07

Да. Я купил себе 2004МХ. Но как-то пока и не пробовал. А теперь уже 8й? Млин...
А 8й так и назывется 8й или там типо 2005МХ?
В 6м getNextHighestDepth() нет(если не нужно что-то специально делать), а кстати функция swapDepths() очень глюченная. Надеюсь в 8м там получше с Депсами. Часто мне требуется.
С классами я пока ничего не знаю.

iNils 01.09.2005 15:16

Цитата:

Сообщение от Psychocat
а кстати функция swapDepths() очень глюченная.

чем же?


Цитата:

Первый кадр (с прелоадером) убираем нафиг!!! Остальное сохраняем! компилим!
...
var my_mcl = new MovieClipLoader();
все намного проще делается и не надо на шестерку гнать, если у вас чтото не получается в ней, то просто руки кривые

Nео 01.09.2005 15:17

Цитата:

Сообщение от Psychocat
А 8й так и назывется 8й или там типо 2005МХ?

http://www.macromedia.com/software/f.../?promoid=BINT
Цитата:

Сообщение от Psychocat
а кстати функция swapDepths() очень глюченная.

А что в ней глюченного, можно поподробнее? Сколько не юзал, ничего не глючило! :rolleyes:

Nео 01.09.2005 15:20

Цитата:

Сообщение от iNils
все намного проще делается и не надо на шестерку гнать, если у вас чтото не получается в ней, то просто руки кривые

вообще-то я на 6-ку не гнал, а с руками у меня все в порядке! :mad:

iNils 01.09.2005 15:40

Цитата:

Сообщение от Nео
вообще-то я на 6-ку не гнал, а с руками у меня все в порядке! :mad:

Цитата:

Сообщение от Nео
но луше поставь 2004 MX, тем более, что уже есть 8-й флэш!

Хуже 2004 MX, только Photoshop CS2

Nео 01.09.2005 16:02

я же не сказал, что 6-ка - оцтой, а 7-ка - руль!
Просто в 7-ке больше возможностей, а заявление
Цитата:

Сообщение от iNils
Хуже 2004 MX, только Photoshop CS2

не обосновано(чисто субъективное мнение)!!!

iNils 01.09.2005 16:09

Цитата:

Сообщение от Nео
не обосновано(чисто субъективное мнение)!!!

Только что дали мне файл в mx 2004 для поиска ошибки.
Открыл.
Залез в один из мувиков.
Сделал изменения.
Залез в другой.
Сделал изменения там.
Понял что в первом надо вернуть все на место.
Но вот не задача, исправить первый клип можно только отменив все дейстия во втором.

Цитата:

Просто в 7-ке больше возможностей
на каждый достаток 7ки, я найду недостаток. так что лучше не будем спорить

Psychocat 01.09.2005 16:24

Цитата:

Сообщение от Nео
http://www.macromedia.com/software/f.../?promoid=BINT
А что в ней глюченного, можно поподробнее? Сколько не юзал, ничего не глючило! :rolleyes:

У меня такое. Когда я делаю свуэпДепс(цифра) просто мувику он дублируется и становится 2 одинаковых. Поэтому я обычно сначал делал duplicateMovieClip() даже тем что нужны в 1м экземпляре. Потом при совпадении глубин один из мувиков удаляется(не уверен, что всегда), возможно это из-за того что все мувики у меня всегда были со свэпдепс. Это для того чтобы те что ближе(ниже) должны перекрывать тех что дальше. А они всё время перемещаются.
Код был примерно такой this.swapDepths(_x*640+_y*400);
Но ведь они должны менятся глубинами, а не перемещаться.
А в игре Атака Роботов у меня стоит setMask(или типа того). Так там вообще робот мог внезапно появится, т.е. быть невидимым пока в него не попадёшь(Думаю это было из-за свуэпДепс). И обэекты тоже иногда пропадали. Вобщем в Атака Роботов я отказался от свуэпДепсс. Можно заметить, что вылетающие из далека роботы перекрывают нормальных. К счастью игра хорошая и с этим недочётом.
P.S.
Новая версия глюченее предыдущей - обычное дело.

Nео 01.09.2005 17:59

trace(mc.getDepth());//читаем текущий уровень
mc.swapDepths(20);//меняем уровень на 20-й
trace(mc.getDepth());//читаем текущий уровень
mc._x += 40;//сдвигаем клип(если я правильно тебя понял, то под ним должен быть еще один, но у меня второй не появляется)

7thsky™ 01.09.2005 21:44

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

iNils 01.09.2005 21:47

Цитата:

Сообщение от 7thsky™
если хочешь сделать легкий первый фрайм с прелоадером, просто у бери экспорт в первом фрейме для всех линкайдж, на первом фрайме преладере который перескакивает на 3 после загрузки а на втором фрейме выложи на тайм лайн все линкайдж которые тебе нужно

вот это я и имел ввиду когда говорил, что "все намного проще делается", но ввиду того что про это уже не раз здесь говорилось моральных сил мне не хватило сказать еще раз :)
Спасибо 7thsky™ за то что он сказал...

Psychocat 02.09.2005 00:01

Вложений: 1
Я так понял NEO провёл эксперимент с дублированием после свэп депс.
Я тоже попробовал сейчас. Вроде бы окей. Я не знаю почему так было, т.к уже тот движёк исправил.
Возможно это глюк конкретно моего флэша был.
Уменя глюк если я открываю MovieExplorer потом ищу допустим все переменные mkl+=10 и меняю их, то после сохранения файла все эти изменения не сохраняются, а остаются mkl+=10.
Ох. Надеюсь что со свэпДепс действительно не всё так плохо. Может были глюки из-за сочетания с дупликэйтМувик. Знаешь, когда я делаю unloadMovie(); не существующему клипу то он удаляет весь мувик, из которого я это делаю. Т.е. когда удаляешь мувик вложенный в нём. Разве это справедливо?
Со звуком тоже были глюки. Типо вложен мувик в мувик. На первом фрейме вложенного мувика звук, далее анимация. Допустим он перескочил на кадр где чувак Айкает. Вроде как кадр со звуком прошёл и анимация пошла, а он мне так звук пускает, как будто я делаю gotoAndPlay(1) на кадр со звуком. 100% недоработка.
Этот движёк у меня есть можешь посмотреть.
управление 1й игрок правая панель с цифрами 4,8,6, Home,Pgup,End,Pgdn
2й D,R,G E,T(блок, бег) Q,W удар рукой ногой.
В воздухе только удар ногой работает. Можешь сделать комбо рукой-рукой-ногой-ногой.


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

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