topical media & game development
student-game-wakuwaku-com-waku-components-Game.ax
student-game-wakuwaku-com-waku-components-Game.ax
(swf
)
[ flash
]
flex
package //com.waku.components
{
// import com.waku.classes.WakuSound;
// import com.waku.events.@fileEvents;
import flash.events.MouseEvent;
import mx.containers.HBox;
import mx.containers.Panel;
import mx.containers.VBox;
import mx.controls.Alert;
public class @ax-student-game-wakuwaku-com-waku-components-Game extends Panel
{
public var soundEngine : student_game_wakuwaku_com_waku_classes_WakuSound = new student_game_wakuwaku_com_waku_classes_WakuSound();
private var hBox : HBox = new HBox();
private var miniGamesCompleted : int = 0;
public var animalNames : Array;
private var _visualTransformation : student_game_wakuwaku_com_waku_components_VisualTransformation = new student_game_wakuwaku_com_waku_components_VisualTransformation(this);
public function @ax-student-game-wakuwaku-com-waku-components-Game()
{
var vBox : VBox = new VBox();
animalNames = new Array();
this.title="Pick an animal!";
initAnimal(0,"Horse");
initAnimal(1,"Chicken");
initAnimal(2,"Cow");
initAnimal(3,"Sheep");
initAnimal(4,"Pig");
this.addChild(hBox);
}
public function muteSound (state : Boolean):void
{
if (state == true) {
soundEngine.mute();
}
else
{
soundEngine.unmute();
}
}
private function initAnimal(animalId : int, animalName : String) : void {
var imageButton :student_game_wakuwaku_com_waku_components_ImageButton = new student_game_wakuwaku_com_waku_components_ImageButton();
imageButton.animalId = animalId;
animalNames[animalId]=animalName;
imageButton.addSource("student-game-wakuwaku-com-waku-animals-0"+ animalId.toString() + "-preview.gif");
imageButton.addEventListener(MouseEvent.CLICK, animalEventHandler);
hBox.addChild(imageButton);
}
private function animalEventHandler(event : MouseEvent) : void {
var object : Object;
object = event.currentTarget as student_game_wakuwaku_com_waku_components_ImageButton;
launchMiniGame(object.animalId);
}
private function launchMiniGame(animalId : int) : void {
var imageButton : student_game_wakuwaku_com_waku_components_ImageButton = hBox.getChildAt(animalId) as student_game_wakuwaku_com_waku_components_ImageButton;
var miniGame : student_game_wakuwaku_com_waku_components_MiniGame;
imageButton.removeEventListener(MouseEvent.CLICK, animalEventHandler);
imageButton.disableAnimation();
miniGame = new student_game_wakuwaku_com_waku_components_MiniGame(animalId, animalNames[animalId],soundEngine);
//mini@ax-student-game-wakuwaku-com-waku-components-Game.addEventListener(student_game_wakuwaku_com_waku_events_GameEvents.MINIGAME_FINISHED, mini@fileFinished);
miniGame.addEventListener(student_game_wakuwaku_com_waku_events_GameEvents.MINIGAME_CLOSED, miniGameClosed);
this.parentApplication.addChild(miniGame);
//this.visible=false;
}
private function miniGameClosed(event : student_game_wakuwaku_com_waku_events_GameEvents):void
{
var miniGame : student_game_wakuwaku_com_waku_components_MiniGame = event.target as student_game_wakuwaku_com_waku_components_MiniGame;
var imageButton : student_game_wakuwaku_com_waku_components_ImageButton;
miniGame.removeEventListener(student_game_wakuwaku_com_waku_events_GameEvents.MINIGAME_CLOSED, miniGameClosed);
imageButton = hBox.getChildAt(miniGame.animalId) as student_game_wakuwaku_com_waku_components_ImageButton;
if (miniGame.score == 3)
{
//imageButton.removeEventListener(MouseEvent.CLICK, animalEventHandler);
//imageButton.disableAnimation();
//_visualTransformation.disabledColorTransform(imageButton);
_visualTransformation.fadeSome( imageButton,0.2);
//_visualTransformation.greenGlowPlay(imageButton);
miniGamesCompleted++;
if (miniGamesCompleted == 5)
{
gameFinished();
}
}
else
{
imageButton.addEventListener(MouseEvent.CLICK, animalEventHandler);
imageButton.enableAnimation();
}
this.parentApplication.removeChild(miniGame);
}
private function gameFinished():void {
var alert:Alert = Alert.show("Congratulations, you have completed all of the animals");
soundEngine.Play("student-game-wakuwaku-com-waku-sounds-gamecomplete.mp3");
}
}
}
(C) Æliens
20/2/2008
You may not copy or print any of this material without explicit permission of the author or the publisher.
In case of other copyright issues, contact the author.