![]() |
Прелоадер перепрыгивает на 2-й кадр не загрузивши остальные
Вложений: 1
У меня прелоадер почему-то перепрыгивает на 2-й кадр, не загрузивши файлы с 3-го кадра... В общем компилю проект нажимаю в окне флеш проигрывателя по меню View > Simulate Download, видно как полоса добигает до 5-10% и потом тупо сразу перепрыгивает на 2-й кадр, где кнопка, нажимаю по кноке чтобы попасть в 3-й кадр где картинка, но при нажатии ничего не происходит, потому что файл до конца не загрузился и видно кстати как он дальше грузится, открыв Frame by Frame Graph... и только тогда когда до конца загрузится событие по кнопке осуществляется...
Подробное описание: Выложу исходник ещё Создал прелоадер .fl + внешний .as файл Структура .fl файла: Первый кадр, в нем создан MovieClip под названием preloader, так же я прописал в linkage для него класс main.preloader, в этом MovieClip-е ещё один MovieClip под названием progressbar и Instanse of: "progressbar" в котором красная полоска, которая с помощью AS кода растягивается во время загрузки файлов. В первом кадре на фрейме ничего не написано... Второй кадр, в нем расположена кнопка под названием myButton с ID: "play_btn" На 2-м фрейме записан код: Код AS3:
Как сделать чтобы полоска загрузки доходила до конца, а не пробежала 5% и перепрыгнула на 2-й кадр и там уже догружается... Кстати если поставить 3-й кадр на второй, где кнопка находится, то полоса загружается до конца, если в .fl файле вообще только 2 кадра... В общем вот исходник: |
А зачем делать прелоадер в нескольких кадрах, когда кадры в AS3 чем меньше трогать - тем лучше?
Может, сделайте загрузчик отдельным swf файлом, и Вашу программу - отдельным. Так Вы выигрываете в трёх пунктах: 1. Логика проще. 2. Меньше кода. 3. Не нужно трогать второй и третий кадры. Добавлено через 1 минуту Код AS3:
|
Нужно именно так, чтобы 1-й кадр прелоадер, 2-й кадр кнопка "Играть/Start", 3-й кадр всё остальное...
|
Вложений: 1
Подделал ваши исходники. В комментариях некоторые советы. Удачи.
Вложение 21174 |
Цитата:
visible=false and true логично, я и забыл про них, не самый лучший способ конечно, но все равно огромное спасибо :victory: Я читал тему создание аркадной игры с 0... там прелоадер вообще кучу ошибок выдал, пока исправлял...... в общем тот прелоадер писался в 8 флеше и чуть не подходит для 9-ки... респект ... :drinks: |
Цитата:
|
Цитата:
Дело в том что в .fla файле в строке там где надо прописать клас "Document Class" у меня уже есть путь к другому .as файлу и если я с файла main.Main вставляю код: Код AS3:
1180: Call to a possibly undefined method stop. 1180: Call to a possibly undefined method gotoAndStop. 1180: Call to a possibly undefined method gotoAndStop. 1180: Call to a possibly undefined method addFrameScript. 1180: Call to a possibly undefined method gotoAndStop. Я предполагаю что ошибка из-за public class mainScript extends Sprite { } ---> extends Sprite <---, так записано в моем классе и я в него вставляю код, а в другом .as файле, то есть на прелоадер "main.as" написано public class Main extends MovieClip { } В общем не знаю что делать... Добавлено через 2 часа 22 минуты А нет... дело не в public class Main extends Sprite { } Дело в том что stop();, gotoAndStop(2);, gotoAndStop(3); нельзя прописывать во внешнем .as файле, потому что компил. этого не понимает мне кажется, не знает что надо сделать стоп в кадре и т.д. :( Я создал простую переменую private var pRe; и дописал её к pRe.stop();, pRe.gotoAndStop(2) и т.д., в итоге 3 ошибки перестали выскакивать... Но осталась одна: 1180: Call to a possibly undefined method addFrameScript. Делаю двойной клик по строке с ошибкой, она меня отправляет на 1 строку, строка: package { Как с этой ошибкой бороться? Добавлено через 2 часа 43 минуты Или переделайте пожалуйста кто-то этот прелоадер, который переделал kackbip, так чтобы строка Document Class была пустой, а то я чет ничего немогу придумать как обращаться к внешнему файлу main.Main :(, созда мувиклип на первом кадре и ему в linkage... прописал class: main.Main но ничего не вышло (((( Короче говоря надо как-то сделать загрузку класса (внешнего main.Main.as файла ) не трогая строку Document Class: )))) |
>>А нет... дело не в public class Main extends Sprite {
} Дело в том что stop();, gotoAndStop(2);, gotoAndStop(3); нельзя прописывать во внешнем .as файле, Так надо написать public class Main extends MovieClip и все goto будут работать http://www.dnadillo.dn.ua/fla/Preload-second-fram.html |
Alex Lexcuk сделал так как ты сказал, посмотрел сслыку http://www.dnadillo.dn.ua/fla/Preload-second-fram.html ))) Все равно есть трабла...
Выбивает следующую ошибку в окне Output, не Compiler Error: TypeError: Error #1009: Cannot access a property or method of a null object reference. at myScript$iinit() TypeError: Ошибка #1009: Не может обращаться к свойству или методу недействительной объектной ссылки. в myScript$iinit() Вот что я понял: В .fla файле в строке Document Class записан id: myScript Структура самого myScript.as файла приведена ниже... Заметьте что после public class >>>myScript<<< extends MovieClip { идет функция startLoader, а не myScript, эта функция (myScript) идет ниже, после startLoader. В общем не знаю что делать... Как уже не крутил, как я только не переставлял этот код местами и т.д., постоянно новые и новые ошибки... Код AS3:
но ты не мог бы переделать этот прелоадер так чтобы все осталось на своих местах, но строка в .FLA файле Document Class была пустой? Конечно если у тебя есть время... В ту строку я хочу подключить другой файл - myScript.as ))) Он самый главный. Просто мучусь с этим прелоадером уже 2-й день по ходу дела... |
Давайте уже ваши исходники. Подскажу на конкретном примере.
|
| Часовой пояс GMT +4, время: 11:48. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.