Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
5.10.2009 - 22:14
Сообщение
#1
|
|
|
Активный участник ![]() ![]() ![]() Группа: Пользователь Сообщений: 200 Регистрация: 20.04.2007 Пользователь №: 3496 |
Помогите найти ответ на непонятный глюк.
Создаю предзагрузчик програмно , ставлю код во 2-ой кадр Timeline Код if (_root.getBytesTotal() != _root.getBytesLoaded()) { gotoAndPlay(1); //якщо загальна кількість байтів не дорівнює загруженим переходимо на кадр 1 } _root.createEmptyMovieClip("bar_mc", 1); //створюєм новий пустий екземпляр мувікліпа і поміщаєм на перший рівень bar_mc.lineStyle(2, 0xFF0000); //задаєм стиль лінії для створенного мувіка bar_mc.moveTo(200, 203); //вказуєм місце розташування початку лінії bar_mc.lineTo(((_root.getBytesLoaded()/_root.getBytesTotal())*100)+200, 203); //вказуємо кінець лінії, який залежить від загружених байтів _root.createTextField("loader_txt", 2, 243, 210, 50, 20); //створюєм нове текстове поле на 2 рівні,вказуєм координати і розміри loader_txt.text = Math.round((_root.getBytesLoaded()/_root.getBytesTotal())*100)+"%"; //рахуєм проценти і додаєм знак процентів _root.createEmptyMovieClip("scope_mc", 3); //створюєм і малюєм нижню лнію scope_mc.lineStyle(1, 0x000000); scope_mc.moveTo(197, 202); scope_mc.lineTo(197, 205); scope_mc.lineTo(304, 205); scope_mc.lineTo(304, 202); В 3 -ий кадр вставляю Код bar_mc.removeMovieClip(); loader_txt.removeTextField(); scope_mc.removeMovieClip(); //все лишнє видаляєм і зупиняєм кіно stop(); и графический файл большого размера(по весу). Нажимаю Control=>TestMovie =>View=>Simulate Download Все отлично тестируется, наблюдаю загрузку. После теста удаляю графический файл и начинаю програмировать сайт . Где то на 5 или 6 кадрах при тестировании замечаю что при Simulate Download загрузчика своего не наблюдаю , вернее он появляется где то при загрузке 70% байтов а до этого белый экран. В нет не выставлял, все тестировал на локалке. Почему так? Да, еще добавлю, весь код на отдельном слое. Сообщение отредактировал Тарас - 5.10.2009 - 22:16 |
|
|
|
5.10.2009 - 22:17
Сообщение
#2
|
|
|
Ветеран конференции ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 1135 Регистрация: 27.02.2009 Из: Moscow Пользователь №: 9144 |
Это значит, что основной вес находится в первом кадре.
|
|
|
|
5.10.2009 - 22:30
Сообщение
#3
|
|
|
Активный участник ![]() ![]() ![]() Группа: Пользователь Сообщений: 200 Регистрация: 20.04.2007 Пользователь №: 3496 |
Это значит, что основной вес находится в первом кадре. Но он же пустой , даже кода нет никакого (IMG:style_emoticons/default/blink.gif) А может и вправду так. Картинка была около 1Мб, а сайт практически без графики , вернее совсем без графики - все програмно создаю и вес соответственно совсем ничего до 100Кб Сообщение отредактировал Тарас - 5.10.2009 - 22:37 |
|
|
|
7.10.2009 - 21:48
Сообщение
#4
|
|
|
Активный участник ![]() ![]() ![]() Группа: Пользователь Сообщений: 200 Регистрация: 20.04.2007 Пользователь №: 3496 |
Да нет. Причина не в весе. Загрузил часть сайта после предзагрузчика графикой - ниче не поменялось. Шкала предзагрузчика появляется где то на 70%. Тут что то другое, но я пока не могу найти.
|
|
|
|
8.10.2009 - 12:09
Сообщение
#5
|
|
|
Ветеран конференции ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 1135 Регистрация: 27.02.2009 Из: Moscow Пользователь №: 9144 |
Графика или что-то еще тяжелое могут быть экспортированы в первый фрейм (надо смотреть параметры экспорта в библиотеке), также из-за этого в библиотеке может быть "забыто" нечто тяжелое.
В любом случае поможет "Generate size report". Внутренние прелоадеры начинают работать только ПОСЛЕ того, как первый кадр загружен. И если внутренний прелоадер начал работать с 70%, значит первый кадр и весит 70%. |
|
|
|
12.10.2009 - 15:50
Сообщение
#6
|
|
|
Активный участник ![]() ![]() ![]() Группа: Пользователь Сообщений: 200 Регистрация: 20.04.2007 Пользователь №: 3496 |
Да , действительно, у меня около 70% клипов из библиотеки (при использовании attachMovie())експортированы в первый фрейм. Но как с этим бороться? Не использовать attachMovie()? Или есть другой выход? Поделитесь кто как решает эту проблему.
|
|
|
|
12.10.2009 - 16:17
Сообщение
#7
|
|
|
Ветеран конференции ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 1135 Регистрация: 27.02.2009 Из: Moscow Пользователь №: 9144 |
Но как с этим бороться? 1) Использовать внешние прелоадеры (самый простой и надежный способ). 2) Обмануть пользователя (сделать псевдозагрузку до текущей, а потом, когда псевдозагрузка догонит настоящую, передать значения настоящей) 3) Экспортировать тяжелые вещи в любой другой фрейм, кроме первого. |
|
|
|
12.10.2009 - 16:44
Сообщение
#8
|
|
|
Активный участник ![]() ![]() ![]() Группа: Пользователь Сообщений: 200 Регистрация: 20.04.2007 Пользователь №: 3496 |
chingachgoog, спасибо за советы. Думаю из трех вариантов что то сумею замутить.
|
|
|
|
14.10.2009 - 16:17
Сообщение
#9
|
|
|
Активный участник ![]() ![]() ![]() Группа: Пользователь Сообщений: 200 Регистрация: 20.04.2007 Пользователь №: 3496 |
Решил вопрос с пролеадором созданием внешнего пролеадера. chingachgoog был прав это самый простой и надежный способ. Но на всякий случай решил испробовать и остальные варианты. Второй вариант слишком не удобный и заморочек тьма( вычислить , подогнать, подставить и т.д.). С 3 вариантом непонятка.
Цитата 3) Экспортировать тяжелые вещи в любой другой фрейм, кроме первого. Это как? Из библиотеки экспортировать тяжелые вещи в любой другой кадр вручную и тогда вызывать их уже не из библиотеки , а обращаться к ним _root.myClip так как они уже на тайм лайне существуют. Так? |
|
|
|
14.10.2009 - 18:22
Сообщение
#10
|
|
|
Ветеран конференции ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 1135 Регистрация: 27.02.2009 Из: Moscow Пользователь №: 9144 |
Это как? Из библиотеки экспортировать тяжелые вещи в любой другой кадр вручную и тогда вызывать их уже не из библиотеки , а обращаться к ним _root.myClip так как они уже на тайм лайне существуют. Так? Почти так. В библиотеке ставим галку экспорта для скрипта, но НЕ СТАВИМ галку экспорта в первый кадр. Далее, например, сбрасываем вручную эти объекты во второй фрейм. В третьем фрейме их на таймлайне, например уже нет, потому _root.myClip к ним не обратишься, но ПОСЛЕ второго фрейма они уже доступны для аттача программно. А программа, например, сразу с первого кадра (где внутренний прелоадер, перескакивает на третий и второго кадра вообще никто не видит. |
|
|
|
14.10.2009 - 19:04
Сообщение
#11
|
|
|
Активный участник ![]() ![]() ![]() Группа: Пользователь Сообщений: 200 Регистрация: 20.04.2007 Пользователь №: 3496 |
Алгоритм понял. Спасибо.
|
|
|
|
23.11.2009 - 16:37
Сообщение
#12
|
|
|
Активный участник ![]() ![]() ![]() Группа: Пользователь Сообщений: 231 Регистрация: 28.02.2009 Из: Тюмень Пользователь №: 9145 |
1) Использовать внешние прелоадеры (самый простой и надежный способ). А как это? (IMG:style_emoticons/default/laugh.gif) |
|
|
|
23.11.2009 - 17:57
Сообщение
#13
|
|
|
Активный участник ![]() ![]() ![]() Группа: Пользователь Сообщений: 200 Регистрация: 20.04.2007 Пользователь №: 3496 |
Создаем два мувика. Первый пролеадер , второй - основной фильм. Оба желательно в одной папке. Через loadClip в первый грузим второй.
|
|
|
|
23.11.2009 - 18:17
Сообщение
#14
|
|
|
Активный участник ![]() ![]() ![]() Группа: Пользователь Сообщений: 231 Регистрация: 28.02.2009 Из: Тюмень Пользователь №: 9145 |
|
|
|
|
23.11.2009 - 18:54
Сообщение
#15
|
|
|
Ветеран конференции ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 1135 Регистрация: 27.02.2009 Из: Moscow Пользователь №: 9144 |
|
|
|
|
23.11.2009 - 20:28
Сообщение
#16
|
|
|
Активный участник ![]() ![]() ![]() Группа: Пользователь Сообщений: 231 Регистрация: 28.02.2009 Из: Тюмень Пользователь №: 9145 |
Нет. Классы - это всего лишь функции во флешке (физически есть один файл swf и в нем сколько угодно классов) А внешний прелоадер - это физически отдельный файл swf. Значит, мне надо сделать флешку-прелоадер, разместить его где-то в интернете, а потом загрузить в основную флешку? Но ведь chingachgoog сказал Цитата Это потому, что все фотки находяться в первом кадре Получается, после действия прелоадера, флешку нельзя будет перевести на 2-й кадр gotoAndPlay(2)?
|
|
|
|
23.11.2009 - 20:48
Сообщение
#17
|
|
|
Ветеран конференции ![]() ![]() ![]() ![]() ![]() Группа: Пользователь Сообщений: 1135 Регистрация: 27.02.2009 Из: Moscow Пользователь №: 9144 |
Значит, мне надо сделать флешку-прелоадер, разместить его где-то в интернете, а потом загрузить в основную флешку? Почти так. Надо сделать флешку-прелоадер, запустить ее и грузить В НЕЁ свой тяжелый контент. Это и есть вариант с внешним прелоадером. Получается, после действия прелоадера, флешку нельзя будет перевести на 2-й кадр gotoAndPlay(2)? Не получается. Во-первых, перевести на второй (любой) кадр можно. Во-вторых - это не нужно. Т.к. речь шла о внутреннем прелоудере. А при использовании внешнего прелоудера мудрить с кадрами нет необходимости. |
|
|
|
23.11.2009 - 21:04
Сообщение
#18
|
|
|
Активный участник ![]() ![]() ![]() Группа: Пользователь Сообщений: 200 Регистрация: 20.04.2007 Пользователь №: 3496 |
Первый клип(прелоадер) состоит из одного кадра и в этот кадр ты загружаеш основной фильм, в созданый програмно, при помощи _root.createEmptyMovieClip("myClip_mc", 1); пустой экземпллляр клипа.
P.S. Как ты можеш увидеть тема была создана мной , у меня тоже были проблемы но уважаемый chingachgoog указал мне правильный путь к решению проблемы. Я прогуглил этот вопрос( уроки по внешнему прелоадеру в сети есть) изучил , написал свой и проблем нет. Сообщение отредактировал Тарас - 23.11.2009 - 21:18 |
|
|
|
24.11.2009 - 16:52
Сообщение
#19
|
|
|
Активный участник ![]() ![]() ![]() Группа: Пользователь Сообщений: 231 Регистрация: 28.02.2009 Из: Тюмень Пользователь №: 9145 |
P.S. Как ты можеш увидеть тема была создана мной , у меня тоже были проблемы но уважаемый chingachgoog указал мне правильный путь к решению проблемы. Я прогуглил этот вопрос( уроки по внешнему прелоадеру в сети есть) изучил , написал свой и проблем нет. Да, спасибо, ребята! Сделал я наконец-то свой прелоадер. Даже уроки не понадобились, только ваши советы (IMG:style_emoticons/default/rolleyes.gif) |
|
|
|
21.01.2010 - 20:10
Сообщение
#20
|
|
|
Активный участник ![]() ![]() ![]() Группа: Пользователь Сообщений: 231 Регистрация: 28.02.2009 Из: Тюмень Пользователь №: 9145 |
Начались проблемы у меня с этим прелоадером. Не загружает моя флешка другую!
Код такой (это с прелоудером). Код var mLoader:Loader = new Loader(); var mRequest:URLRequest = new URLRequest("simple_gallery.swf"); mLoader.load(mRequest); //mLoader.x = 9; //mLoader.y = 214; mLoader.addEventListener(ProgressEvent.PROGRESS, prog); mLoader.addEventListener(Event.COMPLETE, comp); mLoader.addEventListener(Event.INIT, init); function prog(e:ProgressEvent):void{ moovik.gotoAndStop(Math.round(e.bytesLoaded/e.bytesTotal*100)); } function comp(e:Event):void{ removeChild(moovik); } function init(e:Event):void{ addChild(mLoader); } Ни из локадьной папки на жестком не загружает, ни из интернета! А БЕЗ прелоадера загружает и отображает все нормально Код var mLoader:Loader = new Loader(); var mRequest:URLRequest = new URLRequest("simple_gallery.swf"); mLoader.load(mRequest); addChild(mLoader); Как же это понимать? |
|
|
|
![]() ![]() |
|
Текстовая версия | Сейчас: 18.06.2013 - 11:59 |