Просмотр полной версии : Не работает функция при использовании loadMovie
SeaQuest
15.01.2009, 01:15
Вот так функция не работает:
this.createEmptyMovieClip("mc10",45);
this.mc10.loadMovie("bg.jpg");
_root.mc10.onRollOver = function (){
_root.mc10._alpha = 30;
}
При том что вот так работает(для проверки):
this.createEmptyMovieClip("mc10",45);
this.mc10.loadMovie("bg.jpg");
_root.mc10._alpha = 30;
То бишь проблема именно с функцией. Интересно то, что если пользоваться attachMovie() суя файл в библиотеку, вместо loadMovie(), то все работает.
Смысл всего: хочу создать меню с динамически подргужаемыми картинками кнопок. Пока что сделал вывод что вместо button придется все сувать в movieClip и писать обработчики. А тут такая засада.
Fatality
15.01.2009, 01:52
метод .loadMovie() устарел так как он неполноценен, используй MovieClipLoader например так
var mc_ldr:MovieClipLoader = new MovieClipLoader();
var Listener:Object = new Object();
Listener.onLoadStart = function(mc:MovieClip)
{
trace("Загружаем данные в : "+mc);
}
Listener.onLoadComplete = function(mc:MovieClip)
{
trace("Загрузили данные в : "+mc);
mc.onRollOver = function()
{
this._alpha = 50;
}
}
_root.createEmptyMovieClip("clip_mc", 0);
mc_ldr.loadClip("1.jpg", clip_mc);
mc_ldr.addListener(Listener);
все работает отлично - при RollOver прозрачность изображения равна 50%
P.S если не понятно что зачем объясню
SeaQuest
15.01.2009, 02:48
Отдельно попробовал, работает, спасибо! Но когда пытаюсь воткнуть этот код в мой код - не работает. Видимо проблема в том, что созданный таким образом клип вставляется в еще один программный клип + на него накадывается маска. Думаю тут уже глюки с адресацией и ограничениями связанные с ней.
Хреновато, но код понял. Буду пробовать. Не получится - выложу весь свой код.
Добавлено через 32 минуты
Все работает! Видимо, все мои ошибки по неграмотности.
Чутка дополненный код, в случае если наш мувик нужно вставить в еще один программный мувик:
var mc_ldr:MovieClipLoader = new MovieClipLoader();
var Listener:Object = new Object();
Listener.onLoadStart = function(mc:MovieClip)
{
trace("Загружаем данные в : "+mc);
}
Listener.onLoadComplete = function(mc:MovieClip)
{
trace("Загрузили данные в : "+mc);
mc.onRollOver = function()
{
this._alpha = 50;
}
}
this.createEmptyMovieClip("mc1",0);
this.mc1.createEmptyMovieClip("clip_mc", 0);
mc_ldr.loadClip("bg.jpg", mc1.clip_mc);
mc_ldr.addListener(Listener);
Я бы был благодарен за комментарии по работе этого кода. Если не сложно опиши вкратце.
Fatality
15.01.2009, 16:53
выкладываю код с комментариями
var mc_ldr:MovieClipLoader = new MovieClipLoader(); //Создаем объект управляющий процессом загрузки
var Listener:Object = new Object(); //Создаем объект который будет слушателем событий
//Здесь события загрузчика ими управляет созданный нами слушатель
Listener.onLoadStart = function(mc:MovieClip) //Это событие onLoadStart, происходит при старте загрузки(его можно удалить)
{
trace("Загружаем данные в : "+mc);
}
//У загрузчика так же есть и другие события, например onLoadProgress, выполняется во время процесса загрузки
Listener.onLoadComplete = function(mc:MovieClip) //Это событие onLoadComplete, происходит по окончанию загрузки
{
trace("Загрузили данные в : "+mc); //Эта строка не обязательна, думаю знаешь и сам что это =)
mc.onRollOver = function() //Тут уже на наш клип можно вешать событие onRollOver
{
this._alpha = 50;
}
}
this.createEmptyMovieClip("mc1",0);
this.mc1.createEmptyMovieClip("clip_mc", 0);
mc_ldr.loadClip("bg.jpg", mc1.clip_mc); //Загружаем изображение в клип
mc_ldr.addListener(Listener); //Вешаем загрузчику наш слушатель
//Все манипуляции с клипом в который грузится изображение делаются по окончанию загрузки
//Тогда все отлично работает
SeaQuest
15.01.2009, 19:03
Пасиба! :) Вопрос исчерпан, тему можно закрывать.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.