#actionscript-3
#actionscript-3
Вопрос:
Я создаю простую игру на flash в actionscipt 3. Я хочу, чтобы при нажатии пользователем на 3 видеоролика на сцене отображалось сообщение типа «Спасибо, что нажали на все 3 видеоролика!»
это сообщение должно появиться, как только он нажмет на 3, а не только на один.
есть идеи 🙂
Ответ №1:
Вы хотите сохранить, были ли они нажаты, где каждый из вас, слушателей, может получить доступ, например:
var clicked1:Boolean = false;
var clicked2:Boolean = false;
var clicked3:Boolean = false;
Затем внутри вашего метода (ов) прослушивателя действий:
function listenerMethod1(e:MouseEvent):void {
clicked1 = true;
checkIfAllClicked();
}
function listenerMethod2(e:MouseEvent):void {
clicked2 = true;
checkIfAllClicked();
}
function listenerMethod3(e:MouseEvent):void {
clicked3 = true;
checkIfAllClicked();
}
и т.д… (в качестве альтернативы вы можете обработать все 3 события MovieClip одним и тем же методом обработчика). Не забудьте функцию проверки:
function checkIfAllClicked(){
if(clicked1 amp;amp; clicked2 amp;amp; clicked3){
trace("Thanks for clicking all 3 movieclips!");
}
}
В зависимости от того, что вы делаете, у вас также может быть метод сброса, чтобы сбросить все 3 в false.
Если у вас большая масса видеороликов, вы можете рассмотреть возможность использования коллекции, такой как Vector<Boolean>
.
Комментарии:
1. я думаю, мне нужно будет добавить это также правильно: box1.addEventListener (MouseEvent.CLICK, listenerMethod1); box2.addEventListener (MouseEvent.CLICK, listenerMethod2); box3.addEventListener (MouseEvent.CLICK, listenerMethod3); Спасибо 🙂
2. Вы правы, любой метод прослушивания должен иметь соответствующий addEventListner(), который его вызовет
Ответ №2:
Или у вас могла бы быть единственная функция, которую используют все кнопки:
var count:uint = 0;
function buttonPress(e:MouseEvent):void {
count ;
if (count == 3) {
trace("Thanks for clicking all 3 movieclips!");
//reset count if required
//count = 0;
}
}
Комментарии:
1. Единственное, что пользователь может щелкнуть видеоролик более одного раза… и я хочу, чтобы учитывался только первый щелчок с каждого.. Спасибо 🙂