Форум 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)
-   -   как сделать непрозрачными мувики двух уровней? (http://www.flasher.ru/forum/showthread.php?t=116445)

Csar 30.09.2008 22:41

как сделать непрозрачными мувики двух уровней?
 
Для начала хочу поблагодарить этот форум. Мне достаточно быстро уже оказывали поддержку и помощь в освоении флеша. Поэтому обращаюсь еще раз.

Есть 2 вопроса:
1) Есть 2 уровня, на нулевом главный мувик (т.е. главный swf-файл), а на первом подгружается отдельный swf-файл. Проблема в том, что если на нулевом есть интерактивыные кнопки (картинка-кнопка, м.б. с использованием маски), а на подгружаемом свф-нике, допустим, просто фоновая картинка, то если полетать мышкой по этому фону, то БУДУТ АКТИВНЫ интерактивыные кнопки с нулевого уровня! Т.е. подгружаемый свф-ник как бы обладает степенью "невидимой" прозрачности. А мне надо, что бы кнопки те не были активны при загруженном свф-нике следующего уровня. Есть ли функция к.-н. которая НЕ выгружает предыдущий уровень, но как бы блокирует то, что находится "под" подгружаемом свф-ником. Подгружаемый свф-ник может не занимать все поле , а лишь частично покрыть главный мувик. Также м.б. вариант функции, применяемый не к главному мувику, а к "установлению приоритета" подгружаемого свф-ника.

2) В продолжение предыдущего вопроса:
Надо из подгружаемом свф-нике нажать на кнопку и перескочить на главный мувик (на конкретную страницу, а не на первый кадр), выгрузив этот самый подгружаемой свф-ник. Прошу показать мне скрипт этой кнопки. У меня получается лишь выгрузить подгружаемой свф-ник и загрузить главный с первого кадра.
PS При загрузке подгружаемого свф-ника я не выгружаю главный мувик, а он оказывается у меня запущенный, как бы на заднем плане. Поэтому м.б. можно его не загружать заново, а просто открыть как то?
PSS При перескоке с 1 на 0 уровень все просто: при выгрузке 1 уровня автоматом открывается предыдущий, т.е. 0-ой. А если мне надо выгрузить 3-тий, и перескочить сразу на 0-ой, минуя запущенный swf-ник на втором уровне?

gloomyBrain 30.09.2008 22:55

Я Вам посоветую одну простую вещь:
загружайте swf в мувики (заранее для этого созданные), ведь тогда Вы получите возможность управлять их глубиной, прозрачностью и вообще чем захотите.
До тех пор, пока Вы грузите всё на уровни, Вы лишаете себя этого удовольствия

ЗЫ
Уверяю Вас, код переделывать почти не придётся

Csar 30.09.2008 23:14

gloomyBrain вы бы не могли мне привести пример скрипта такого? Я новичек еще.

AL.exe 01.10.2008 02:53

Цитата:

загружайте swf в мувики
Цитата:

вы бы не могли мне привести пример скрипта такого?
=>

Используйте метод MovieClip.loadMovie() вместо глобальной функции loadMovieNum()

Код:

//делаем пустой мувиклип-контейнер:
var mc:MovieClip = this.createEmptyMovieClip("mc", this.getNextHighestDepth());

//подгружаем в него внешнюю swf:
mc.loadMovie("http://somedomain.com/somemovie.swf");


Csar 01.10.2008 17:56

AL.exe спсасибо. Я загружаю несколько swf для разбиения общего размера сайта. Чтобы не все сразу грузилось, а по частям. В вашем варианте загрузке в ролик swf-ника, этот swf также не будет загружаться вместе с основным файлом, а начнем лишь загружаться, когда программа дойдет до этой строчки?

AL.exe 01.10.2008 20:51

Цитата:

начнем лишь загружаться, когда программа дойдет до этой строчки?
Нет, выполнение кода само по себе не остановится, если внешний swf еще не загружен.

Если я вас правильно понял, вы хотите, чтобы swf-ки подгружались последовательно. В этом случае вам нужно вешать загрузку каждой следующей swf-ки на событие загрузки предыдущей.

Если я правильно помню, как это делается на AS2, должно быть примерно так:

Код:

//делаем пустой мувиклип-контейнер:
var mc1:MovieClip = this.createEmptyMovieClip("mc1", this.getNextHighestDepth());

//подгружаем в него внешнюю swf:
mc1.loadMovie("http://somedomain.com/somemovie.swf");

//вешаем обработчик события загрузки:
mc1.onLoad = function() {

    //делаем пустой мувиклип-контейнер для второй swf-ки:
    var mc2:MovieClip = this.createEmptyMovieClip("mc2", this.getNextHighestDepth());

    //подгружаем в него внешнюю swf:
    mc2.loadMovie("http://somedomain.com/somemovie2.swf");

}


UPD: или я непарвильно понял вопрос... извиняюсь, сегодня напряженный день был на работе :)

Csar 02.10.2008 02:21

откровенно призняться я не понял вашего последнего скрипта.

Ситуация следующая. Имеется сайт, на нем главный swf: index.swf, а также на сайте имеется 1.swf, 2.swf и 3.swf. Первые кадры 1,2,3.swf - прелоадеры. Юзер заходит на сайт, ждет пока загрузится index.swf и начинает по нему гулять и, наконец, нажимает на кнопку (все в этом index.swf, вобще весь сайт - flash_site) и появляется индикатор прелоадера, который свидетельствует о загрузке 1.swf. Затем, полностью загрузившись, юзер гуляет по 1.swf. И также жмет на определенную кнопку и появляется прелоадер от 2.swf. И там погулял юзер. И ему захотелось попасть сразу на index.swf, минуя 1.swf (Надо заметить, что для юзера все swf-ники на самом деле один неразрывный сайт, а не набор swf-ников).
Вот тут то и появляются 2 проблемы о которых я говорил:
1) Как перескочить с подгруженного 2.swf на index.swf, причем сразу на конкретный кадр (не первый)?
2) Как сделать так, чтобы во время загруженного 2.swf не были активны кнопки с 1.swf и тем более с index.swf?


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

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