PDA

Просмотр полной версии : Действие по событию


alexpro
24.02.2009, 19:14
Скажите, пожалуйста, как сделать, чтобы действие (например, gotoAndPlay) происходило при окончании загрузки клипа в таргет (loadMovie)?

Т.е. клип грузится определенное время в таргет (например "target1", при чем загрузка клипа происходит при нажатии кнопки). Когда он полностью загрузился, происходит действие (gotoAndPlay).

Как это можно сделать?

nOobCrafter
24.02.2009, 19:19
использовать мувиклиплоадер и по событию onLoadInit запускать действие.
hmc = createEmptyMovieClip("holder_mc", this.getNextHighestDepth()); // создаем мувик-контейнер
// Создаем слушатель чтоб наблюдать за загрузкой
var loaderListener:Object = new Object();

loaderListener.onLoadInit = function(mc:MovieClip) // когда загрузка завершена
{
trace("Приехали..");
}
////// Загружем в мувик контейнер
var imageLoader:MovieClipLoader = new MovieClipLoader();
imageLoader.addListener(loaderListener);
imageLoader.loadClip("Menu.swf", hmc); // грузим что то куда то...
}

alexpro
24.02.2009, 20:06
Не совсем понял. А как прописать событие после загрузки? Например gotoAndPlay?
И как привязать к кнопке загрузку клипа?

Можно ли использовать загрузку

on (release) {
loadMovie("somemovie.swf", "container1");

}

и отталкиваться от нее?

Fatality
24.02.2009, 20:56
loadMovie давно и безнанадежно устарел, как впрочем и написание кода в кнопках. Для полноценного контроля загрузки - используйте класс MovieClipLoader, как сказал nOobCrafter. Событию onLoadInit вы можете назначить функцию, которая будет выполняться по окончанию загрузки.

nOobCrafter
25.02.2009, 18:25
вместо trace пишешь что хочешь..

alexpro
03.03.2009, 21:56
Вы не могли бы объяснить на примере, как использовать этот код, если не очень затруднит? Я не разбираюсь в АS. Если можно, пошагово (Куда вписывать какой код). Нужно ли создавать holder_mc или AS сам его создаст?
Где находится точка отсчета координат клипа, который мы грузим с помощью этого кода
hmc = createEmptyMovieClip("holder_mc", this.getNextHighestDepth()); // создаем мувик-контейнер
// Создаем слушатель чтоб наблюдать за загрузкой
var loaderListener:Object = new Object();

loaderListener.onLoadInit = function(mc:MovieClip) // когда загрузка завершена
{
trace("Приехали..");
}
////// Загружем в мувик контейнер
var imageLoader:MovieClipLoader = new MovieClipLoader();
imageLoader.addListener(loaderListener);
imageLoader.loadClip("Menu.swf", hmc); // грузим что то куда то...
}
Ато он у меня как-то косо подгружается (но если разворачиваю - становится по середине). Могу ли я его грузить в существующий клип, который буду компоновать на странице?
спасибо

Добавлено через 21 минуту
loadMovie давно и безнанадежно устарел, как впрочем и написание кода в кнопках.

Вы не могли бы мне показать пример, как не писать код в кнопках, а использовать современные методы? :umnik2:
Буду очень признателен

lexa2000lexa
04.03.2009, 12:11
Вот тут почитайте там все подробно расписаноhttp://flasher.ru/forum/showthread.php?t=120227&highlight=MovieClipLoader

nOobCrafter
04.03.2009, 13:27
hmc = createEmptyMovieClip("holder_mc", this.getNextHighestDepth()); // создаем мувик-контейнер, в него будем грузить фотку, грузить можно в любой другой клип
// Создаем слушатель чтоб наблюдать за загрузкой
var loaderListener:Object = new Object();

loaderListener.onLoadInit = function(mc:MovieClip) // когда загрузка завершена
{
trace("Приехали..");
mc._x = (Stage.width - mc._width) / 2; // ставим клип по центру
mc._y = (Stage.height - mc._height) / 2;
// тут уже клип загружен и мы можем его центрировать как хотим так же имеем доступ к его параметрам (ширина\высота)
}
////// Загружем в мувик контейнер
var imageLoader:MovieClipLoader = new MovieClipLoader();
imageLoader.addListener(loaderListener);
imageLoader.loadClip("Menu.swf", hmc); // грузим файл - "Menu.swf", в клип hmc
}