Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Общие вопросы (http://www.flasher.ru/forum/forumdisplay.php?f=10)
-   -   Подгрузка мувика - проблемы в Нетскейпе (http://www.flasher.ru/forum/showthread.php?t=21422)

alessia 16.10.2001 17:37

Подгрузка мувика - проблемы в Нетскейпе
 
Вопрос такой: мувик и прелоадер к нему, в отдельных клипах
Прелоадер подгружает мувик внутрь себя в невидимом слое, а после полной загрузки загружает мувик с слой 0.
Такой изврат пришлось сделать, потому что мувик содержит около 50 к экспортируемых клипов, они, соответственно, все 1-м кадре висят :(
Так вот, в 4-м Нетскейпе с новым плагином это не хочет работать. Совсем не хочет :((

Конечно, можно на него забить, но это неправильно?

APM 16.10.2001 22:08

Код, пожалйуйста, загрузки в себя и загрузки в слой 0.
И что значит невидимый слой?

alessia 17.10.2001 20:09

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

В прелоадере есть невидимый мувик blackbox (он же слой. в отдельном слое потому что - ну это точно непринципиально), в который загружается большой клип, командой
loadMovie("xxx.swf", blackbox.xxx),
а как же еще можно чего-то подгружать?

А после того, как клип полностью прочитан, то есть
blackbox.xxx.getBytesLoaded() >= blackbox.xxx.getBytesTotal(),
он загружается вместо прелоадера.
loadMovie("xxx.swf", _level0)

Может, не надо так делать? то есть грузить не вместо прелоадера, а поверх, типа
loadMovie("xxx.swf", _level1)?

Заранее спасибо

APM 17.10.2001 21:31

Извини, все равно не понял. Точнее как минимум два варианта того что я понял.
Вариант 1. Есть мувик типа SWF-файл. В нем есть мувик-прелоадер, и в нем невидимый мувик-блекбокс. Видишь какая путаница с самим названием мувик (надо бы как-нибудь определиться с терминологией). Ты грузишь в блэкбокс, а затем пытаешься заменить
рут блекбоксом. Наверняка не получится потому, что рут в данном случае
родительский обект для прелоадера и, естественно, дедушка бокса.
Как только ты пытаешься загрузить какой-то мувик вместо другого,
то прежде чем этот мувик загрузиться, он должен расчистить себе место,
т.е. грохнуть своего дедушку. Но это не пьеса Шекспира - убивая деушку, место не просто расчищается, а попутно грохаются и все его потомки, так что все наследники удаляется одновременно со своими родителями. И никакого наследства не получат.
Так что такой дворцовый переворот не пройдет. У тебя в этом случае скорее всего на экране сначала очень долго-долго крутится прелоадер,
а затем начинается почти такая же долгая загрузка того что ты хочешь.
Может быть чуть-чуть быстрее, за счет кэширования броузера.
Вариант 2. Ты все сделала правильно. Но забыла что команда
LoadMovie все-равно загружает мувик, не зависимо от того что он уже
где-то загружен. В таком случае тебе нужно не LoadMovie, а что-то типа
дупликейт и скорее всего swapDepths или _visible=true. Но и в этом случае ты не должна ни в коем случае уничтожать/заменять родительский
мувик. Иначе все будет еще хуже чем в Варианте 1. Это можно все равно
что пилить сук на котором сидишь.

alessia 18.10.2001 11:00

Ну я окончательно запуталась :(
 
наверное, вариант 2 ближе к истине.
попробую еще раз высказать суть проблемы
есть файл preloader.swf, собственно прелоадер с какой-то дурацкой анимацией... в 1-м кадре у него помещен невидимый клип blackbox, в который собственно и подгружается xxx.swf
когда xxx.swf полностью загружен, я делаю blackbox видимым и зацикливаю прелоадер на двух последних кадрах
(конечо, там он и крутится)

в 4-м Нетскейпе blackbox остается невидимым :(

APM 18.10.2001 12:02

Нда. Вроде теоретически верно. А в чем тогда работает IE, Opera ...

alessia 18.10.2001 13:16

работает во всех ИЕ, Нетскейп 6, Опера 5
не работает в Нетскейпе 4, Опера 4, Мозилла М14

то есть практически всегда работает. странно это как-то :(

APM 18.10.2001 21:38

Можно конечно считать виновником плагин - NN достаточно часто поминается в связи с этим. А можешь ли ты попробовать опубликовать
свой мувик под флэш4, или принципиально невозможно. Второй момент
а попробуй в том месте, где пытаешься сделать обьет видимым
проверить сужествует ли обьект, какова его visible, alfa и т.д.
чтобы понять есть обьект вообще т.е. он загрузился или нет
или он просто не отображается. Если во флэш5 то можно на твой блекбокс
мовесить обработчик события onClipEvent(load) в котором попытаться
что-то предпринять чтобы хоть как-то просигнализировать об окончании загрузки и о текущем состоянии/имени. Возможно, что плагины как то отличаются в поведении по тому как прописаны пути( через слеш или дот). или чувствительны к какой-то конкретной команде. Но это обнаруживается только последовательным усечением кода, при котором можно натворить много чего лишнего, так что рекомендую с осторожностью.

alessia 18.10.2001 23:06

Плотнее поинтересовавшись этим вопросом, я обнаружила, что подобная проблема встречается ЧАСТО, на самых примитивных акциях типа stop() и setProperty(). :rolleyes: То есть я видела несколько подобных роликов, в которых не отрабатываются stop(), назначение свойств _alpha, _visible, и тому подобные элементарные акции.

В моем случае действительно необходим 5-й флэш, потому что я использую свои функции. Объект действительно существует, и по запросу значений свойств выдает правильные ответы, но показывает совсем не то.

Однажды у меня такое уже было - в сложном клипе слои не хотели становиться невидимыми (во всех кадрах, где были назначены акции, они выполнялись, кроме одного кадра), так и пришлось их совсем удалять, и вместо хитрого action script'а делать много-премного кадров.

В данном случае есть еще один обходной путь. но будет оооочень коряво и некрасиво, и недоступно для исправлений. Обломно!

APM 19.10.2001 11:58

Если есть время посмотри вот это
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
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.