package {
import flash.display.Sprite;
import flash.events.MouseEvent;
import fl.controls.Button;
import flash.text.TextField;
import flash.text.TextFieldAutoSize;
import flash.text.TextFormat;
import flash.utils.Timer;
import flash.events.TimerEvent;
import flash.events.Event;
public class main extends Sprite {
private var block1:proj5;
private var block2:proj5;
private var block3:proj5;
private var block4:proj5;
private var block5:proj5;
private var block6:proj5;
private var dropZone:proj5;
private var block8:proj5;
private var But1:Button;
private var But2:Button;
private var moves:int;
private var moveInfo:TextField;
private var timeInfo:TextField;
private var menu:item;
private var Link1:item;
private var Link2:item;
private var Link3:item;
private var Link4:item;
private var Link11:item;
private var Link12:item;
private var Link13:item;
private var Link14:item;
private var Link21:item;
private var Link22:item;
private var Link23:item;
private var Link24:item;
private var Link31:item;
private var Link32:item;
private var Link1A:item;
private var Link2A:item;
private var Link1B:item;
private var Link2B:item;
private var Link3A:item;
private var Link3B:item;
private var mainVid:singleVid;
private var myTimer:Timer = new Timer(1000, 0);
private var timeRemaining:int =30;
private var reset:Boolean = false;
private var obj1:Sprite = new Sprite();
public function main() {
moves = 0;
buildBlocks();
//setupButtons();
//textFrame(185, 10, "Try to arrange the blocks \nto create a single image.\nTime Remaining:");
//textFrame(165, 315, "Solutions Found");
//textFrame(165, 300, "Moves: ");
//moveFrame();
mainVid = new singleVid();
addChild(mainVid);
mainVid.setPos(300,10);
myTimer.addEventListener("timer", timerHandler);
mainVid.addEventListener("allDone", vidComplete);
block1.addEventListener("moveMeUp", changePriority1);
block1.addEventListener("finishedMoving", stopedMoving);
block2.addEventListener("moveMeUp", changePriority2);
block2.addEventListener("finishedMoving", stopedMoving);
block3.addEventListener("moveMeUp", changePriority3);
block3.addEventListener("finishedMoving", stopedMoving);
block4.addEventListener("moveMeUp", changePriority4);
block4.addEventListener("finishedMoving", stopedMoving);
block5.addEventListener("moveMeUp", changePriority5);
block5.addEventListener("finishedMoving", stopedMoving);
setChildIndex(mainVid,1);
//myTimer.start();
menu = new item(300, 260, 50, 15, ["Link-Menu.gif","Select-Menu.gif"]);
Link1 = new item(300, 260, 50, 15, ["Link-1.gif","Select-1.gif"]);
Link2 = new item(300, 260, 50, 20, ["Link-2.gif","Select-2.gif"]);
Link3 = new item(300, 260, 50, 20, ["Link-3.gif","Select-3.gif"]);
Link4 = new item(300, 260, 50, 20, ["Link-4.gif","Select-4.gif"]);
Link11 = new item(300, 260, 50, 15, ["Link-11.gif","Select-11.gif"]);
Link12 = new item(300, 260, 50, 20, ["Link-12.gif","Select-12.gif"]);
Link13 = new item(300, 260, 50, 20, ["Link-13.gif","Select-13.gif"]);
Link14 = new item(300, 260, 50, 20, ["Link-14.gif","Select-14.gif"]);
Link21 = new item(300, 260, 50, 20, ["Link-21.gif","Select-21.gif"]);
Link22 = new item(300, 260, 50, 20, ["Link-22.gif","Select-22.gif"]);
Link23 = new item(300, 260, 50, 20, ["Link-23.gif","Select-23.gif"]);
Link24 = new item(300, 260, 50, 15, ["Link-24.gif","Select-24.gif"]);
Link31 = new item(300, 260, 50, 20, ["Link-31.gif","Select-31.gif"]);
Link32 = new item(300, 260, 50, 20, ["Link-32.gif","Select-32.gif"]);
Link1A = new item(300, 260, 50, 20, ["Link-1A.gif","Select-1A.gif"]);
Link1B = new item(300, 260, 50, 20, ["Link-1B.gif","Select-1B.gif"]);
Link2A = new item(300, 260, 50, 20, ["Link-2A.gif","Select-2A.gif"]);
Link2B = new item(300, 260, 50, 20, ["Link-2B.gif","Select-2B.gif"]);
Link3A = new item(300, 260, 50, 20, ["Link-3A.gif","Select-3A.gif"]);
Link3B = new item(300, 260, 50, 20, ["Link-3B.gif","Select-3B.gif"]);
menu.addSubItem(Link1);
menu.addSubItem(Link2);
menu.addSubItem(Link3);
menu.addSubItem(Link4);
Link1.addSubItem(Link11);
Link1.addSubItem(Link12);
Link1.addSubItem(Link13);
Link1.addSubItem(Link14);
Link2.addSubItem(Link21);
Link2.addSubItem(Link22);
Link2.addSubItem(Link23);
Link2.addSubItem(Link24);
Link3.addSubItem(Link31);
Link3.addSubItem(Link32);
Link13.addSubItem(Link1A);
Link13.addSubItem(Link1B);
Link22.addSubItem(Link2A);
Link22.addSubItem(Link2B);
Link31.addSubItem(Link3A);
Link31.addSubItem(Link3B);
addChild(menu);
}
private function changePriority1(event:Event):void {
trace("CHANGE PRIORITY EVENT");
setChildIndex(block1,numChildren - 1);
}
private function changePriority2(event:Event):void {
trace("CHANGE PRIORITY EVENT");
setChildIndex(block2,numChildren - 1);
}
private function changePriority3(event:Event):void {
trace("CHANGE PRIORITY EVENT");
setChildIndex(block3,numChildren - 1);
}
private function changePriority4(event:Event):void {
trace("CHANGE PRIORITY EVENT");
setChildIndex(block4,numChildren - 1);
}
private function changePriority5(event:Event):void {
trace("CHANGE PRIORITY EVENT");
setChildIndex(block5,numChildren - 1);
}
private function stopedMoving(event:Event):void {
//trace("end of motion OUtside");
if ((dropZone.getRootY()==block1.getY())&&(dropZone.getRootX()==block1.getX())) {
mainVid.setVideo("1.flv");
}
if ((dropZone.getRootY()==block2.getY())&&(dropZone.getRootX()==block2.getX())) {
mainVid.setVideo("2.flv");
}
if ((dropZone.getRootY()==block3.getY())&&(dropZone.getRootX()==block3.getX())) {
mainVid.setVideo("3.flv");
}
if ((dropZone.getRootY()==block4.getY())&&(dropZone.getRootX()==block4.getX())) {
mainVid.setVideo("4.flv");
}
if ((dropZone.getRootY()==block5.getY())&&(dropZone.getRootX()==block5.getX())) {
mainVid.setVideo("5.flv");
}
}
private function advancePosition() {
if (block1.getInList()) {
block1.setPos(block1.getX(),block1.getY()-block1.getSizeOfVid());
}
if (block2.getInList()) {
block2.setPos(block2.getX(),block2.getY()-block2.getSizeOfVid());
}
if (block3.getInList()) {
block3.setPos(block3.getX(),block3.getY()-block3.getSizeOfVid());
}
if (block4.getInList()) {
block4.setPos(block4.getX(),block4.getY()-block4.getSizeOfVid());
}
if (block5.getInList()) {
block5.setPos(block5.getX(),block5.getY()-block5.getSizeOfVid());
}
}
private function vidComplete(event:Event):void {
trace("endOfVid");
if ((dropZone.getRootY()==block1.getY())&&(dropZone.getRootX()==block1.getX())) {
trace("Status: "+mainVid.playing());
block1.goHome();
block1.setInList(false);
dropZone.removeVid();
advancePosition();
}
if ((dropZone.getRootY()==block2.getY())&&(dropZone.getRootX()==block2.getX())) {
trace("Status: "+mainVid.playing());
block2.goHome();
block2.setInList(false);
dropZone.removeVid();
advancePosition();
}
if ((dropZone.getRootY()==block3.getY())&&(dropZone.getRootX()==block3.getX())) {
trace("Status: "+mainVid.playing());
block3.goHome();
block3.setInList(false);
dropZone.removeVid();
advancePosition();
}
if ((dropZone.getRootY()==block4.getY())&&(dropZone.getRootX()==block4.getX())) {
trace("Status: "+mainVid.playing());
block4.goHome();
block4.setInList(false);
dropZone.removeVid();
advancePosition();
}
if ((dropZone.getRootY()==block5.getY())&&(dropZone.getRootX()==block5.getX())) {
trace("Status: "+mainVid.playing());
block5.goHome();
block5.setInList(false);
dropZone.removeVid();
advancePosition();
}
}
private function timerHandler(event:TimerEvent):void {
if (mainVid.playing() != true) {
}
}
private function textFrame(xVal:int, yVal:int, stuff:String):void {
var label:TextField;
label = new TextField();// assigns a new text field to the var label.
label.autoSize = TextFieldAutoSize.LEFT;// sets the left justify
label.text = stuff;
label.y = yVal;
label.x = xVal;
addChild(label);// Sends the display object to the stage to be displayed.
}
private function moveFrame():void {
var moveInfo:TextField;
moveInfo = new TextField();// assigns a new text field to the var label.
moveInfo.autoSize = TextFieldAutoSize.LEFT;// sets the left justify
moveInfo.text = String(moves);
moveInfo.y = 300;
moveInfo.x = 205;
addChild(moveInfo);// Sends the display object to the stage to be displayed.
timeInfo = new TextField();// assigns a new text field to the var label.
timeInfo.autoSize = TextFieldAutoSize.LEFT;// sets the left justify
timeInfo.text = String(timeRemaining);
timeInfo.y = 40;
timeInfo.x = 270;
addChild(timeInfo);// Sends the display object to the stage to be displayed.
}
private function buildBlocks():void {
obj1.graphics.beginFill(0x000000);
obj1.graphics.drawRect(0, 0, 400, 400);
obj1.graphics.endFill();
obj1.alpha = 1;
addChild(obj1);
dropZone=new proj5(150,0,140,450,["dropAlpha.png","dropAlpha.png","dropC.jpg"]);
dropZone.alpha = 1;
dropZone.disableOverlay();
addChild(dropZone);
block1=new proj5(0,0,70,70,["1.jpg","overlay1.png","1.jpg"]);
addChild(block1);
block2=new proj5(0,0,70,70,["2.jpg","overlay2.png","2.jpg"]);
addChild(block2);
block3=new proj5(0,0,70,70,["3.jpg","overlay3.png","3.jpg"]);
addChild(block3);
block4=new proj5(0,0,70,70,["4.jpg","overlay4.png","4.jpg"]);
addChild(block4);
block5=new proj5(0,0,70,70,["5.jpg","overlay5.png","5.jpg"]);
addChild(block5);
block6=new proj5(0,0,70,70,["IMG_1_01.jpg","1.jpg","1.jpg"]);
addChild(block6);
this.addEventListener(MouseEvent.MOUSE_UP, up1);
this.addEventListener(MouseEvent.MOUSE_MOVE , move1);
this.addEventListener(MouseEvent.DOUBLE_CLICK, dblClick);
//dropZone.setPos(150 ,0);
block1.setPos(10 ,10);
block2.setPos(10 ,90);
block3.setPos(10 ,170);
block4.setPos(10 ,250);
block5.setPos(10 ,330);
block6.setPos(10 ,410);
}
public function dblClick(event:MouseEvent):void {
trace("A double click has occured 222");
}
public function move1(event:MouseEvent):void {// you placed the action listeners for the move outside the objects class to solve the problem of moving the block so fast that the mouse moves off the block b4 the user unclicks it.
block1.moveIt(event);
block2.moveIt(event);
block3.moveIt(event);
block4.moveIt(event);
block5.moveIt(event);
block6.moveIt(event);
}
public function up1(event:MouseEvent):void {// you placed the action listeners for the move outside the objects class to solve the problem of moving the block so fast that the mouse moves off the block b4 the user unclicks it.
trace("----------------");
if (dropZone.isAbove(block1.getX(),block1.getY())&&(block1.getInList()!=true)) {
trace("inside1");
block1.setPos(dropZone.getThumbXPos(),dropZone.getThumbYPos());
block1.setInList(true);
} else if (dropZone.isAbove(block2.getX(),block2.getY())&&(block2.getInList()!=true)) {
trace("inside2");
block2.setPos(dropZone.getThumbXPos(),dropZone.getThumbYPos());
block2.setInList(true);
} else if (dropZone.isAbove(block3.getX(),block3.getY())&&(block3.getInList()!=true)) {
trace("inside3");
block3.setPos(dropZone.getThumbXPos(),dropZone.getThumbYPos());
block3.setInList(true);
} else if (dropZone.isAbove(block4.getX(),block4.getY())&&(block4.getInList()!=true)) {
trace("inside4");
block4.setPos(dropZone.getThumbXPos(),dropZone.getThumbYPos());
block4.setInList(true);
} else if (dropZone.isAbove(block5.getX(),block5.getY())&&(block5.getInList()!=true)) {
trace("inside5");
block5.setPos(dropZone.getThumbXPos(),dropZone.getThumbYPos());
block5.setInList(true);
}//ainVid.setVideo("5.flv");
block1.up1(event);
block2.up1(event);
block3.up1(event);
block4.up1(event);
block5.up1(event);
}
}
}