package { import fl.events.SliderEvent; import flash.display.MovieClip; import flash.display.Bitmap; import flash.display.BitmapData; import flash.display.SimpleButton; import flash.display.Sprite; import flash.events.MouseEvent; import flash.events.TimerEvent; import flash.geom.Point; import flash.geom.Rectangle; import flash.utils.Timer; // import flash.system.fscommand; public class TilePuzzle extends MovieClip { public var spinTimer:Timer = new Timer(1000 / 20, 0); public function TilePuzzle():void { // fscommand("showmenu", "false"); stopButton.visible = false; spinButton.addEventListener(MouseEvent.CLICK, SpinButtonPressed); stopButton.addEventListener(MouseEvent.CLICK, StopButtonPressed); theSlider.addEventListener(SliderEvent.CHANGE, SliderChanged); spinTimer.addEventListener(TimerEvent.TIMER, SpinTimerTicked); easyMode.addEventListener(MouseEvent.CLICK, EasyModeClicked); hardMode.addEventListener(MouseEvent.CLICK, HardModeClicked); theBoard.ResetSize(3, 3); } public function EasyModeClicked(event:MouseEvent) { hardMode.selected = false; theBoard.HardMode = false; } public function HardModeClicked(event:MouseEvent) { easyMode.selected = false; theBoard.HardMode = true; } public function SliderChanged(event:SliderEvent) { theBoard.ResetSize(theSlider.value, theSlider.value); } public function SpinButtonPressed(event:MouseEvent) { spinTimer.start(); stopButton.visible = true; spinButton.visible = false; } public function StopButtonPressed(event:MouseEvent) { spinTimer.stop(); stopButton.visible = false; spinButton.visible = true; } public function SpinTimerTicked(event:TimerEvent) { if (spinTimer.currentCount & 1) { theBoard.SetSelection(Math.random() * (theBoard.NumXTiles - 1), Math.random() * (theBoard.NumYTiles - 1)); } else { theBoard.RotateSelection(Math.random() < 0.5); } } } }