2014-04-17 3 views
1

Я полный n00b.as3 как выполнять разные действия, если нажата кнопка или нет

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

В моей глупой голове я подумал: «Если я могу создать пустую глобальную переменную, я мог бы ввести« что-то », когда кнопка будет нажата на мой кадр и проверяет последний кадр« если globalvar == «что-то»: ничего не происходит , иначе: gotoAndPlay (где мне нужно)»

Пояснительная изображение: enter image description here

Видимо, это не то, как работает AS3. Так что я могу сделать?

import flash.events.MouseEvent; 

var pressed = "no"; 

function work(event:MouseEvent):void 
{ 
    pedal.visible = false; 
    cursor_mc.visible = false; 
    pressed = "yes" 
} 

pedal.addEventListener(MouseEvent.CLICK, work); 

Это то, что у меня есть, когда действие необходимо выполнить.

Тогда я поставил бы (я никогда не писал, если заявление в as3)

if (pressed == "no") { 
    gotoAndPlay(some other frame); 
} 

Это было бы поставить на совершенно иной кадр И СЛОЯ от предыдущего, так что часть между ними является все еще играл.

+0

Ваша логика звучит правильно. Вы должны иметь возможность установить переменную или логическое значение, а затем проверить его состояние, и если true, он что-то сделает, если false, он сделает что-то еще. Вы можете отправить образец кода? Проблема, в которой вы делаете вещи, может быть проблемой. – E10

+0

Я добавил несколько подробностей, к сожалению, я очень дошел до As, даже не знаю, правильно ли синтаксис, я проверял помощь adobe, мне все хорошо. – Neurone00

+0

Эй, Neurone00, запоздалый прием в сообщество. Если у вас есть немного денег, инвестируйте в одну из книг AS3, упомянутых на http://stackoverflow.com/tags/actionscript-3/info. Я лично рекомендую Библию ActionScript 3.0. Это то, что мы используем в моей компании. – CodeMouse92

ответ

2

Вам нужно добавить новое событие и событие ENTER_FRAME, в которое будет запускаться функция на каждом кадре. Там вы можете проверить, нажата ли кнопка. Например:

stage.addEventListener(Event.ENTER_FRAME, updateFunction); 
function updateFunction(e:Event){ 
    if(pressed == "no"){ 
     if(currentFrame == frame number when you want to check){ 
      gotoAndPlay(some other frame); 
     } 
    } 
} 
Смежные вопросы