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

Dimonnn 31.07.2006 21:16

Не работает функция на загруженном мувике
 
есть сцена, в ней создан клип mov1 и кнопка b_up

при нажатии на кнопку, в mov1 загружается другой мувик и в дальнейшем над измененным мувиком я что-либо делаю...

Код:

b_up.onRelease=function():Void {
        mov01.loadMovie("path to my movie...");
        mov01.onEnterFrame=function():Void{
                bla-bla-bla; //my code
        }
}

вот в таком случае mov01.onEnterFrame не выполняется...
если же не производить загрузку чего-либо в mov1 то mov01.onEnterFrame работает...
mov01.onLoad у меня тоже отказалось работать...

причем, если сделать вот так, то функция alph выполняется исключительно до mov01.onEnterFrame


Код:

alph = function (object):Void {
        object._alpha=0;
        object.onEnterFrame = function():Void{
                object._alpha+= 5;
                if (object._alpha>=100) {
                        object._alpha = 100;
                        delete (object.onEnterFrame);
                }
        }
}


b_up.onRelease=function():Void {
        mov01.loadMovie("path to my movie");
        alph(mov01);
}

объясните почему?

wvxvw 01.08.2006 02:58

а что такое mov01? если ты не объявил эту переменную как мувиклип, то свойства надкласа (т.е. МувиКлипа) она не унаследует (в лучшем случае в ней окажется переменная с именем "onEnterFrame" значение которой будет вычислятся функцией описаной после оператора присвоения.
onLoad - событие классов способнвх что-нибудь загружать (LoadVars, XML, MovieClipLoader), если mov01 не является экземпляром какого-нибудь из вышеперечисленных классов, то и выполнятся соответственно не будет.
Аналогично и во втором примере, если хочешь, чтобы твоя переменная унаследовала свойства какого-нибудь класса, то нужно об этом сообщить (например var mov01:MovieClip = _root.createEmptieMovieClip("my_mc", _root.getNextHighestDepth()); )

Dimonnn 01.08.2006 10:44

у меня в сцене уже есть мувик у которого Instance name - mov01, в него и происходит загрузка

referi 01.08.2006 11:49

тебе нужно дождаться окончания загрузки клипа

iNils 01.08.2006 12:03

Цитата:

Сообщение от Dimonnn
у меня в сцене уже есть мувик у которого Instance name - mov01, в него и происходит загрузка

Сначала надо дождаться загрузки, а потом уже вешать onEnterFrame. У вас это не происходит.

Dimonnn 02.08.2006 14:08

Пасиб, все заработало :) сделал вот так:

Код:

pt="E:/flash/uhodyashaya/maket_ulici/7.jpg";
alph = function (object) {
        object._alpha=0;
        object.onEnterFrame = function():Void{
                object._alpha+= 5;
                if (object._alpha>=100) {
                        object._alpha = 100;
                        delete (object.onEnterFrame);
                }
        }
       
}

b_up.onRelease=function():Void {
        mov01.loadMovie(pt);
        _root.onEnterFrame=function():Void {
                if (mov01.getBytesLoaded()==mov01.getBytesTotal()) {
                        alph(mov01);
                        delete(_root.onEnterFrame);
                }
            }

}



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

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