2012-03-27 8 views
0

Im Aufbau eines Sample-Pad-Typ-Instrument für ein Projekt habe ich vier Kanäle für vier verschiedene Instrumente die Schnittstelle hat vier Tasten, um das Instrument auszuwählen, wenn die Schaltfläche ausgewählt ist, sollte das Bild grün sein aber wenn ein anderes Instrument ausgewählt wird, sollte es zum zweiten Frame des Movieclips gehen, der ein roter Knopf ist, um zu signalisieren, dass das Instrument ausgeschaltet ist.IF-Statement für Variablen in Action Script 3.0

Zeile 23 Ich habe eine bedingte statment für die Variable mit den Kanälen zugeordnet sind es Fehler ausspucken doesnt aber tut auch das Bild ändern, wenn ich weiß, eine andere Taste jemand klicken, wo im gehend falsch

//import flash stuff 

import flash.events.MouseEvent; 
import flash.display.MovieClip; 

stop(); 

//event listener for the power button 

poweroff.addEventListener(MouseEvent.CLICK, mouseClick1); 

function mouseClick1(event:MouseEvent):void{ 
gotoAndStop(1); 
} 

//select which samples to use with event listener, 
//changes var selector bellow, so input listens for 
//different samples 

drumSelector.addEventListener(MouseEvent.CLICK, drumClick); 
function drumClick(event:MouseEvent):void{ 
selector = drums; 
if (selector == drums) 
{ 
drumSelector.gotoAndStop(1); 
}else{ 
drumSelector.gotoAndStop(2); 
} 

} 

bassSelector.addEventListener(MouseEvent.CLICK, bassClick); 
function bassClick(event:MouseEvent):void{ 
selector = bass; 
} 

synthSelector.addEventListener(MouseEvent.CLICK, synthClick); 
function synthClick(event:MouseEvent):void{ 
selector = synth; 
} 

beatSelector.addEventListener(MouseEvent.CLICK, beatClick); 
function beatClick(event:MouseEvent):void{ 
selector = beat; 
} 

//selects which movieclip samples to use for input 

var selector:MovieClip = drums; 


//listen for events on display keyboard 
//make movieclips visible so they can play samples 

key1.addEventListener(MouseEvent.CLICK, key1Click); 
function key1Click(evt:MouseEvent):void 
{ 
selector.i1.visible=true; 
} 

key2.addEventListener(MouseEvent.CLICK, key2Click); 
function key2Click(evt:MouseEvent):void 
{ 
selector.i2.visible=true; 
} 

key3.addEventListener(MouseEvent.CLICK, key3Click); 
function key3Click(evt:MouseEvent):void 
{ 
selector.i3.visible=true; 
} 

key4.addEventListener(MouseEvent.CLICK, key4Click); 
function key4Click(evt:MouseEvent):void 
{ 
selector.i4.visible=true; 
} 

Antwort

0

Erstellen Sie eine neue Funktion für die bedingte wie:

function updateSelector(){ 

    if (selector == drums) 
    { 
     drumSelector.gotoAndStop(1); 
    }else{ 
     drumSelector.gotoAndStop(2); 
    } 
} 

dann in jeder Taste handler:

bassSelector.addEventListener(MouseEvent.CLICK, bassClick); 

function bassClick(event:MouseEvent):void{ 
    selector = bass; 
    updateSelector(); 
} 
0

Bei der Moment wird Ihre Bedingung nur dann ausgeführt, wenn Sie auf die DrumSelector-Schaltfläche klicken, da sie sich im DrumSelector-Click-Handler befindet. Sie sollten Ihre Bedingung in eine separate Funktion verschieben und sie über den Click-Handler der vier Schaltflächen aufrufen, die die Instrumente steuern.

Verwandte Themen