PDA

Просмотр полной версии : Задание координат подгружаемого мувика


EGA
10.02.2009, 20:09
Пожалуйста, помогите сориентировать подгружаемый .swf в нужном месте экрана. Только, если можно, чтобы было понятно "бумажному" дизайнеру. :) Скрипт на кнопке такой:

on (release) {
setProperty("design.swf", _x,"400");
setProperty("design.swf", _x,"200");
loadMovieNum("D:/WORK/SITE/fla/design.swf",1);
}

Кнопка работает, вызывает мувик в level1, но не устанавливает нужные координаты. Может лучше использовать loadMovie? Был еще такой вариант:

on (release) {
loadMovie("D:/WORK/SITE/fla/design.swf", empty);
}

Empty - библиотечный MC с alpha=0, который размещен в основном мувике level0 и должен заменяться на design.swf. Скрипт не работает.
Заранее спасибо за комментарии.

Жень Шень
10.02.2009, 20:34
Привет!
Клип просто еще не успел загрузится, потому и не "встает" на указанное место.
Необходимо использовать MovieClipLoader класс.
тогда по событию onLoadInit можно с клипом делать все, что душе угодно.
В ХЭЛПе все расписано, как по нотам.

EGA
11.02.2009, 02:29
Привет, Жень Шень!
Спасибо за комментарий. Программирование идет туго, хотя мультипликацию вспомнил быстро. К тому же в CS3 не самый удобный ХЭЛП.
Алгоритм я себе представляю. Из всех подручных средств конструкция
собралась такая:

on (release) {
myListener = new Object();
emty = new MovieClipLoader();
emty.loadClip("design.swf",1)// (можно ли подгружать swf на конкретный уровень?)
myListener.onLoadInit = function ("design.swf");
setProperty("design.swf", _x,"400");
setProperty("design.swf", _x,"200");
}

Скрипт не работает, но отладчик ругается только на 5 строку. Но построение правильное, или нет?

nOobCrafter
11.02.2009, 13:13
Кнопке даем инстанс нейм - btn и пишем в кадре:

btn.onRelease = function ()
{
hmc = createEmptyMovieClip('holder_mc', 1); // создаем мувик, который будет содержать свку

// Создаем слушатель чтоб наблюдать за загрузкой свки
var loaderListener:Object = new Object();

loaderListener.onLoadInit = function(mc:MovieClip) // когда загрузка завершена
{
// тут же уже можно писать что будет после того как фотки загрузятся, допустим переход на второй кадр или что то такое.
mc._x = mc._y = 100; // ставим куда хотим
mc.img_width = mc._width; // получаем размеры свки;)
mc.img_height = mc._height; // получаем размеры свки;) // так же тут уже можно центрировать нашу свку, или выровнять по другому
};

var imageLoader:MovieClipLoader = new MovieClipLoader();
imageLoader.addListener(loaderListener);

imageLoader.loadClip(link____, hmc); // берем свку и загружаем в нужный мувик
}

по моему так может выйти. где link____ это адрес до свки.

Жень Шень
11.02.2009, 13:14
Привет!
Посмотрите комментированый пример.
Совет: откажитесь от кодирования на AS1.

EGA
11.02.2009, 17:58
nOobCrafter,
Большое спасибо за развернутый ответ. Попробую отладить. ;)

Жень Шень,
Спасибо за пример.