![]() |
Подгрузка мувика - проблемы в Нетскейпе
Вопрос такой: мувик и прелоадер к нему, в отдельных клипах
Прелоадер подгружает мувик внутрь себя в невидимом слое, а после полной загрузки загружает мувик с слой 0. Такой изврат пришлось сделать, потому что мувик содержит около 50 к экспортируемых клипов, они, соответственно, все 1-м кадре висят :( Так вот, в 4-м Нетскейпе с новым плагином это не хочет работать. Совсем не хочет :(( Конечно, можно на него забить, но это неправильно? |
Код, пожалйуйста, загрузки в себя и загрузки в слой 0.
И что значит невидимый слой? |
Ну, это все из-за экспортируемых символов... а по-другому с ними неудобно получается, много их слишком... а пишутся все в первый кадр, в самое-самое начало.
(Экспортируемые они потому, что их надо аттачить, а импортируемые извне клипы не аттачатся.) В прелоадере есть невидимый мувик blackbox (он же слой. в отдельном слое потому что - ну это точно непринципиально), в который загружается большой клип, командой loadMovie("xxx.swf", blackbox.xxx), а как же еще можно чего-то подгружать? А после того, как клип полностью прочитан, то есть blackbox.xxx.getBytesLoaded() >= blackbox.xxx.getBytesTotal(), он загружается вместо прелоадера. loadMovie("xxx.swf", _level0) Может, не надо так делать? то есть грузить не вместо прелоадера, а поверх, типа loadMovie("xxx.swf", _level1)? Заранее спасибо |
Извини, все равно не понял. Точнее как минимум два варианта того что я понял.
Вариант 1. Есть мувик типа SWF-файл. В нем есть мувик-прелоадер, и в нем невидимый мувик-блекбокс. Видишь какая путаница с самим названием мувик (надо бы как-нибудь определиться с терминологией). Ты грузишь в блэкбокс, а затем пытаешься заменить рут блекбоксом. Наверняка не получится потому, что рут в данном случае родительский обект для прелоадера и, естественно, дедушка бокса. Как только ты пытаешься загрузить какой-то мувик вместо другого, то прежде чем этот мувик загрузиться, он должен расчистить себе место, т.е. грохнуть своего дедушку. Но это не пьеса Шекспира - убивая деушку, место не просто расчищается, а попутно грохаются и все его потомки, так что все наследники удаляется одновременно со своими родителями. И никакого наследства не получат. Так что такой дворцовый переворот не пройдет. У тебя в этом случае скорее всего на экране сначала очень долго-долго крутится прелоадер, а затем начинается почти такая же долгая загрузка того что ты хочешь. Может быть чуть-чуть быстрее, за счет кэширования броузера. Вариант 2. Ты все сделала правильно. Но забыла что команда LoadMovie все-равно загружает мувик, не зависимо от того что он уже где-то загружен. В таком случае тебе нужно не LoadMovie, а что-то типа дупликейт и скорее всего swapDepths или _visible=true. Но и в этом случае ты не должна ни в коем случае уничтожать/заменять родительский мувик. Иначе все будет еще хуже чем в Варианте 1. Это можно все равно что пилить сук на котором сидишь. |
Ну я окончательно запуталась :(
наверное, вариант 2 ближе к истине.
попробую еще раз высказать суть проблемы есть файл preloader.swf, собственно прелоадер с какой-то дурацкой анимацией... в 1-м кадре у него помещен невидимый клип blackbox, в который собственно и подгружается xxx.swf когда xxx.swf полностью загружен, я делаю blackbox видимым и зацикливаю прелоадер на двух последних кадрах (конечо, там он и крутится) в 4-м Нетскейпе blackbox остается невидимым :( |
Нда. Вроде теоретически верно. А в чем тогда работает IE, Opera ...
|
работает во всех ИЕ, Нетскейп 6, Опера 5
не работает в Нетскейпе 4, Опера 4, Мозилла М14 то есть практически всегда работает. странно это как-то :( |
Можно конечно считать виновником плагин - NN достаточно часто поминается в связи с этим. А можешь ли ты попробовать опубликовать
свой мувик под флэш4, или принципиально невозможно. Второй момент а попробуй в том месте, где пытаешься сделать обьет видимым проверить сужествует ли обьект, какова его visible, alfa и т.д. чтобы понять есть обьект вообще т.е. он загрузился или нет или он просто не отображается. Если во флэш5 то можно на твой блекбокс мовесить обработчик события onClipEvent(load) в котором попытаться что-то предпринять чтобы хоть как-то просигнализировать об окончании загрузки и о текущем состоянии/имени. Возможно, что плагины как то отличаются в поведении по тому как прописаны пути( через слеш или дот). или чувствительны к какой-то конкретной команде. Но это обнаруживается только последовательным усечением кода, при котором можно натворить много чего лишнего, так что рекомендую с осторожностью. |
Плотнее поинтересовавшись этим вопросом, я обнаружила, что подобная проблема встречается ЧАСТО, на самых примитивных акциях типа stop() и setProperty(). :rolleyes: То есть я видела несколько подобных роликов, в которых не отрабатываются stop(), назначение свойств _alpha, _visible, и тому подобные элементарные акции.
В моем случае действительно необходим 5-й флэш, потому что я использую свои функции. Объект действительно существует, и по запросу значений свойств выдает правильные ответы, но показывает совсем не то. Однажды у меня такое уже было - в сложном клипе слои не хотели становиться невидимыми (во всех кадрах, где были назначены акции, они выполнялись, кроме одного кадра), так и пришлось их совсем удалять, и вместо хитрого action script'а делать много-премного кадров. В данном случае есть еще один обходной путь. но будет оооочень коряво и некрасиво, и недоступно для исправлений. Обломно! |
Если есть время посмотри вот это
http://www.flasher.ru/forum/showthre...threadid=21362 Немного длинновато, но иначе не получилось обьяснить одну проблемку которая тоже выползала ЧАСТО. Нет ли у твоих проблем тех же корней. И что собственоо у тебя отображается после того как прелоадер отработал? |
| Часовой пояс GMT +4, время: 00:40. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.