PDA

Просмотр полной версии : Как закрыть ролик в ActionScript


abar
31.05.2010, 18:22
Здравтсвуйте. Подскажите пожалуйста Как закрыть ролик в 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) кнопку для закрытия. На кнопку повесьте команду "закрытия", а точнее, сокрытия:
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
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. А косяки бывают именно в этом, они связаны с асинхронностью. Поэтому рекомендую сразу все делать правильно, чтобы проблем потом не было.

abar
01.06.2010, 12:55
Огромное спасибо, очень сильно помогло!!!!

Добавлено через 14 минут
Спасибо огромное, очень сильно помогло!!!!