Форум 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)
-   -   Не работает функция при использовании loadMovie (http://www.flasher.ru/forum/showthread.php?t=120227)

SeaQuest 15.01.2009 01:15

Не работает функция при использовании loadMovie
 
Вот так функция не работает:
Код AS1/AS2:

this.createEmptyMovieClip("mc10",45);
this.mc10.loadMovie("bg.jpg");
_root.mc10.onRollOver = function (){
        _root.mc10._alpha = 30;
        }

При том что вот так работает(для проверки):
Код AS1/AS2:

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 например так
Код AS1/AS2:

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 минуты
Все работает! Видимо, все мои ошибки по неграмотности.
Чутка дополненный код, в случае если наш мувик нужно вставить в еще один программный мувик:
Код AS1/AS2:

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

выкладываю код с комментариями
Код AS1/AS2:

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

Пасиба! :) Вопрос исчерпан, тему можно закрывать.


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

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