Форум 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)
-   -   (slide).onEnterFrame (http://www.flasher.ru/forum/showthread.php?t=101244)

solo19770701 14.09.2007 07:56

(slide).onEnterFrame
 
Вложений: 1
Всем доброго время суток. Опять прошу помощи у форумчан, т.к мои идеи иссякли :wacko:
Суть вопроса. Есть две кнопки и два мувика. При наведении на одну кнопку в одном мувике проигрывается анимация, а в другом идет проверка на if аргумент, если это проходит, то и во втором мувике проигрываетя анимация, если аргумент не проходит, то второй мувих игнорирует запрос кнопки. Тоже самое происходит и со второй кнопкой. Только анимация проходит во втором мувике, а в первом идет проверка на if. Это в теории, на практике все идет только один раз и после этого никакой реакции, такое ощущение что основой timeline уходит в ступор.

Код:

function hide_bubble(gone) {
        if((gone).done = true){
                (gone).onEnterFrame = function(){
                (gone).prevFrame();
                }
        }
};


function show_bubble(see) {
        (see).play();
};


s_btn.onRollOver = function() {
        hide_bubble(o_mc);
        show_bubble(s_mc);
};

o_btn.onRollOver = function() {
        show_bubble(o_mc);
        hide_bubble(s_mc);
};

примерно так.
В дополнение приатачиваю сам файл, там все прекрасно видно. Наставьте на путь истиный :umnik2:, как заставить мувики реагировать на кнопки?


P.S. Извиняюсь если сделал ошибки в правописании или обьяснил недоходчиво, спать ужасно хоца.

CorC 14.09.2007 10:50

1. избавьтесь от (see) и (gone) , скобки ни к чему
2. возможно стоит не play а gotoAndPlay(1)

solo19770701 14.09.2007 17:45

to CorC: хай. Как понять, избавься от see & gone, а как же я буду мувики прописывать? Я могу конечно жестко привязать каждую кнопку к каждому мувику, но это только пример. В основном файле кнопок много, соответственно и мувиков.
P.S. ты мне уже третий раз помогаешь, спасибо.

to CorC: до меня только что дошло, ты имеешь в виду использовать this?

CorC 17.09.2007 10:01

Нет, надо просто убрать скобки
И еще одно, ты ставишь интервалом откат на пред кадр, и нигде это не выключаешь, надо очистить интервал, если кадр 1 (clearInterval + _currentframe)

Kikasso 17.09.2007 10:20

Код:

function hide_bubble(mc) {
        if(mc.done){
                mc.onEnterFrame = function(){
                mc.prevFrame();
                }
        }
};
function show_bubble(mc) {
        mc.play();
};

У вас done - Boolean? Вы не сравнивали, а присваивали.

solo19770701 17.09.2007 21:44

Спасибо за помощь, буду дома попробую.

to Kikasso: а по поводу Boolena, ты прав, идея была сравнитвать, а я присвоил. А я думаю, почему он у меня каждый раз проигрвается? Теперь дошло, где я ошибку допустил (я конечно ничего не говорю о других ошибках).

to CorC: по поводу clearInterval + _currentframe, ты имеешь в виду поставить это в main timeline в первый кадр как mc.clearInterval + _currentframe, я правильно понял. Дома поэксперементирую.

Еще раз спасибо за помощь.

solo19770701 18.09.2007 02:27

Попробовал
 
Вложений: 1
to Kikasso: ну вот я и дома. Попробовал, что ты сказал, не работает :confused:
Код:

function hide_bubble(mc) {
        if(mc.currentframe == 15){
                mc.onEnterFrame = function(){
                        mc.prevFrame();
                }
        }
};

function show_bubble(mc) {
        mc.play();
};


s_btn.onRollOver = function() {
        hide_bubble(o_mc);
        show_bubble(s_mc);
};

o_btn.onRollOver = function() {
        show_bubble(o_mc);
        hide_bubble(s_mc);
};

сделал сравнение к аргумету if, тишина. Вот и файл прилагаю.

А по поводу 1 (clearInterval + _currentframe), почитал в мануале. Как я понял их применяют для очистик интервала или времени. Но как их присабачить для EnterFrame я не понял:boredom: , обясните мне не далекому человеку, что делаю не правильно?
Спасибо за терпение.

Kikasso 18.09.2007 02:45

Код:

s_btn.onRollOver = function() {
hide_bubble(o_mc);
show_bubble(s_mc);
};

o_btn.onRollOver = function() {
show_bubble(o_mc);
hide_bubble(s_mc);
};

function hide_bubble(mc) {
        mc.onEnterFrame = goBack;
};

function show_bubble(mc) {
        delete this.onEnterFrame;
        mc.play();
};

function goBack(){
        //        trace('goBack');
        if(this._currentframe > 1) this.prevFrame();
        else delete this.onEnterFrame;
}


Mnilionic 18.09.2007 02:54

Код:

function hide_bubble(mc) {
        if(mc._currentframe == 15){
                mc.onEnterFrame = function(){
                        if(mc._currentframe == 1) {
                                delete(mc.onEnterFrame);
                                return;
                        }
                        mc.prevFrame();
                }
        }
};


solo19770701 18.09.2007 05:20

Спасибо всем, пошел разбираться.:victory:


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

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