/* AVISO LEGAL: Este código está amparado por las leyes internacionales de derechos de autor y de propiedad intelectual. Queda totalmente prohibida su utilización y/o modificación sin el previo consentimiento de Antares Comunicación Audiovisual (www.antares.es) o en proyectos en los que no esté presente. */ /* [ DATA: ] · initX, initY <- coordenadas globales para colocar el puzzle · dimH, dimW <- numero de piezas: alto x ancho · movie <- imagen a partir de la que hacer el puzzle · ps <- PositionController que gestiona la posición de los destinos [ RESPONSABILITIES ] · Crear las distintas instancias de las Fichas · Mandar las coordenadas individuales de cada ficha · Gestionar partidas: · iniciar · Controlar si se ha terminado · Volver a empezar [ NOTIFICACIONES ] · cuando se coloque una pieza correcamente, pasando como parámetro el número de piezas restantes por colocar */ import movieclip.PositionController; import utils.ExtendedRandomPosition; import sistema.ArrayRandomizer; import Ficha; import GestorPuzzle; import bravo.Contador; class PuzzleController extends MovieClip { // @parameters private var dimH:Number = new Number(2); //numero fichas alto private var dimW:Number = new Number(2); //numero fichas ancho private var maxH, maxW:Number; //tamaño total del puzzle public var imageToLoad:String; //archivo del que hacer puzzle private var secuenciaPosiciones:Array = Array(); //Será un array de dimH x dimW posiciones //que llenaré con strings "w_h", que luego //randomizaré para ir poniendo en ese "cuarteado" //las fichas // @data public var widthFicha, heightFicha:Number; public var widthZonaInicio, heightZonaInicio:Number; private var numFichasToPosition:Number; public var gestor:GestorPuzzle; public var contador:Contador; // @internal usage private var pcDestiny:PositionController; private var rpFicha:ExtendedRandomPosition; private var border_mc, caja_mc:MovieClip; // Triggered cuando el puzzle se ha terminado [Callback("onGameEnd")] public var onGameEnd:Function; public function PuzzleController() { //border_mc._visible = false; } public function setDimensions(w:Number, h:Number) { var i, j, pos; dimW = w; dimH = h; for (i=0; i