Форум 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)
-   -   Как закрыть ролик в ActionScript (http://www.flasher.ru/forum/showthread.php?t=140490)

abar 31.05.2010 18:22

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

Добавлено через 7 минут
Написал вот такой код, и что-то не помогает
Код:

close_btn.onRelease = function(){
 fscommand("quit", true); 
};


franchesko 31.05.2010 18:45

fscommand("quit"); попробуй уже в скомпилированном файле проверить а не из флеша

abar 31.05.2010 18:48

Получилось, но теперь он закрывает оба ролика а надо чтобы только подгружаемый.
Кнопка с кодом находится на подгружаемом ролике, а закрывается все. Подгружаю вот таким кодом
Код:

loadMovieNum("d39.swf", 1);
Добавлено через 1 минуту
конечно можно сделать проще и просто поставить visible false но хочется чтобы было все правильно

mooncar 31.05.2010 21:30

unloadMovie()
Выгружайте ролик, и все.

abar 01.06.2010 10:38

Да но проблема в том, что требуется чтобы подгружаемый ролик закрывался при нажатии на кнопку, а таких более 300 штук((, тоесть было бы не плохо чтобы с каждым роликом шла кнопка закрытия самой себя.

mooncar 01.06.2010 10:49

Ну сделайте в основном ролике контейнер, в который будете загружать ролики. В нем будет:
1) непосредственно контейнер для загрузки, например с именем cont
2) кнопку для закрытия. На кнопку повесьте команду "закрытия", а точнее, сокрытия:
Код AS1/AS2:

close_btn.onRelease = function() {
  cont._visible = false ;
}

И сделайте все-таки загрузку с помощью MovieClipLoader, а то loadMovieNum - это бардак.

abar 01.06.2010 11:29

Я так понял, что другого решения этой ситуации нет. Спасибо большое всем, сделаю тогда как написанно в предыдущем посте.

mooncar 01.06.2010 11:52

Кстати, можно еще так. Если создавать контейнеры для загрузки на лету, через createEmptyMovieClip и при этом после "закрытия" возврат к ним не предполагается, то можно просто совсем удалять со сцены - removeMovieClip();

abar 01.06.2010 12:38

то есть я создаю контейнер
Код:

var container:MovieClip = this.createEmptyMovieClip("test", this.getNextHighestDepth());
а дальше как, что-то не пойму?

mooncar 01.06.2010 12:54

Код AS1/AS2:

var container:MovieClip = this.createEmptyMovieClip('test', this.getNextHighestDepth());
 
var mcl:MovieClipLoader = new MovieClipLoader();
mcl.addListener(this);
 
//необязательный блок, нужен только если что-то хотите сделать с загруженным сразу после загрузки
this.onLoadInit = function  (target_mc)
{
        //... какие-то произвольные действия с загруженным содержимым, если это нужно
        //target_mc при этом  - это ссылка на загруженное, то есть на container (или на test)
}
// конец необязательного блока
 
mcl.loadClip('rolik_1.swf', container);

И в хелп, если есть вопросы, загляните.

Самый главный смысл в использовании MCL - это то, что он дает возможность отследить момент загрузки, чего нет ни у loadMovieNum, ни у loadMovie. А косяки бывают именно в этом, они связаны с асинхронностью. Поэтому рекомендую сразу все делать правильно, чтобы проблем потом не было.


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

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