Форум 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=83344)

Count 02.08.2006 15:14

Событие по выполнении нескольких действий
 
Подскажите пожалуйста,как выполнить.
Дано:
Таблица из 12-ти ячеек,в каждой расположена кнопка.
Требуется:
По нажатии 6-ти кнопок перейти в следующий кадр клипа
Заранее спасибо.

wvxvw 04.08.2006 05:48

Код:

_global.counter=0;
 кнопка.onRelease = function(){
_global.counter<7 ? _global.counter++ : _root.gotoAndStop(2);
}


Count 08.08.2006 13:12

Во-первых,большое спасибо за помощь , но возникает ещё один вопрос: кнопки есть movieclip и если повесить вышеуказанную функцию то блокируется выполнение самой кнопки хотя счётчик работает исправно.Можно ли как-то обойти эту проблему. Сапсибо.

wvxvw 08.08.2006 16:30

Хм... мб у тебя есть 2 обработчика события onRelease? если так, то просто совмести код из обоих событий в одной функции-обработчике.

KidsKilla 08.08.2006 18:08

Код:

if(кнопка.onRelease != undefined){
  кнопка.onR = кнопка.onRelease;
  кнопка.onRelease = function(){
      _global.counter<7 ? _global.counter++ : _root.gotoAndStop(2);
      this.onR();
  }
}


Count 09.08.2006 12:33

Спасибо,действительно можно было записать всё в одну функцию. А вот ещё такой вопрос: как можно блокировать все кнопки по выполнении условия, т.е ,когда нажаты все 6-ть кнопок? Попробывал добавить код
Код:

button.enabled = false;
,но это не помогло....

KPaul 09.08.2006 19:43

Код:

но это не помогло....
Очень странно.
А попробуй после button.enabled = false; сделать trace(button.enabled);
Интересно что скажет?

Count 09.08.2006 22:45

Цитата:

Интересно что скажет?
А вообще ничего не говорит-молчит! Т.е может я где-то ошибся,вот посмотрите:
Код:

button.onRelease = function() {
        _global.counter<5 ? _global.counter++ : _root.gotoAndStop(2);
        this.gotoAndPlay(2);
        button.enabled = false;
        var my_sound:Sound = new Sound();
        my_sound.attachSound("PAD");
        my_sound.start();
};


KPaul 09.08.2006 23:55

К сожалению, сейчас Flash-а под руками нет, попробуй в теле метода заменить button.enabled = false; на this.enabled= false;
Не решишь, может еще кто поможет, или я завтра за компом буду... ))

wvxvw 10.08.2006 05:04

Одно из двух, либо это кнопка, либо это клип =)
Код:

this.gotoAndPlay(2);
button.enabled = false;

Если до этого у кнопки не было метода "пойти поиграть", то взывать к нему бессмысленно =) Если это все-таки клип, то енейблед, ессна, по той же причине никакого действия на него не возымеет =)
Да, есть у меня такое чувство, что это все-таки клип %) Тогда вместо использования такого неприсущего клипам метода "enabled", я бы сделал вот что:
Код:

this.gotoAndPlay(2);
this.onRelease = function(){
trace("Я устал, хочу отдохнуть, ну сколько можно по мне кликать!?");
}


KPaul 10.08.2006 11:25

Цитата:

Если это все-таки клип, то енейблед, ессна, по той же причине никакого действия на него не возымеет =)
Да, есть у меня такое чувство, что это все-таки клип %) Тогда вместо использования такого неприсущего клипам метода "enabled",
Зачем же считать св-во "enabled" входящее в апи класса MovieClip неприсущим? Все объекты(визуальные), наследующие от прототипа MovieClip, будут иметь функционал, по блокированию колбэков начинающихся с "on[Bla-bla]", отвечающия за взаимодействие с мышью, кроме onMouseDown, onMouseUp. Короче, легче глянуть хелп по MovieClip.enabled.

Count 10.08.2006 11:36

Да,но сам по себе
Код:

trace
мне не нужен, нужно именно каким-то образом заблокировать кнопки. Вопрос, можно ли это каким-либо образом сделать. (И это действительно клипы , а не кнопки)

KPaul 10.08.2006 12:37

В чистом fla в первый кадр (на сцене клип с именем "but"):
Код:

//but.enabled = false;
but.onPress = function(){
        trace("hi");
}

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

KidsKilla 10.08.2006 13:18

Код:

button.onRelease = function() {
        _global.counter<5 ? _global.counter++ : _root.gotoAndStop(2);
        this.gotoAndPlay(2);
        // button.enabled = false;
        this.enabled = faalse;
        var my_sound:Sound = new Sound();
        my_sound.attachSound("PAD");
        my_sound.start();
};


Count 10.08.2006 13:52

А по какой причине
Код:

trace
может быть не виден?

KidsKilla 10.08.2006 14:01

Цитата:

Сообщение от Count
А по какой причине
Код:

trace
может быть не виден?

по причине ошибки в ДНК? =)

wvxvw 10.08.2006 16:59

Цитата:

Зачем же считать св-во "enabled" входящее в апи класса MovieClip неприсущим? Все объекты(визуальные), наследующие от прототипа MovieClip, будут иметь функционал, по блокированию колбэков начинающихся с "on[Bla-bla]", отвечающия за взаимодействие с мышью, кроме onMouseDown, onMouseUp. Короче, легче глянуть хелп по MovieClip.enabled.
Хм... да, должно и с клипом работать %) ну тогда я не знаю... у меня весь код нормально выполняется... все, что надо трейсится... может в орфографии ошибки...


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

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