import main.PhotoModelXml import main.PhotoControllerColumns class main.PhotoViewColumns extends mvc.AbstractView{ private var model:PhotoModelXml; private var controller: PhotoControllerColumns; private var holder:Holder //holder for photos private var iconsP:Array = new Array() //array of icons private var cantIcons:Number //quantity of icons on stage private var totalPages:Number //total pages of icons private var hw:Number = 100 //size of icon private var t:MovieClip //timeline private var counter:Number=0 //for the icons private var output:TextField private var dataLoaded:Boolean = false private var state:String = "single" //Could be single or icons /* * Constructor * @param m Model of this view * @param c Controller of this view * @param timeline Reference to the timeline holding this view */ public function PhotoViewColumns (m:PhotoModelXml, c:PhotoControllerColumns, timeline:MovieClip) { // Set the model. setModel(m); t = timeline // If a controller was supplied, use it. Otherwise let the first // call to getController() create the default controller. if (c !== undefined) { setController(c); } } /** * Returns the default controller for this view. */ public function defaultController (model:PhotoModelXml):PhotoControllerColumns { return null; } /** * Sets the model this view is observing. * @param m is the model for this view */ public function setModel (m:PhotoModelXml):Void { model = m; } /** * Returns the model this view is observing. */ public function getModel ():PhotoModelXml { return model; } /** * Sets the controller for this view. */ public function setController (c:PhotoControllerColumns):Void { controller = c; // Tell the controller this object is its view. getController().setView(this); } /** * Returns this view's controller. */ public function getController ():PhotoControllerColumns { // If a controller hasn't been defined yet... if (controller === undefined) { // ...make one. Note that defaultController() is normally overridden // by the AbstractView subclass so that it returns the appropriate // controller for the view. setController(defaultController(getModel())); } return controller; } /* * Creates an array of positions for icons * @param row quantity of rows * @param col quantity of columns */ private function setupIcons(row:Number, col:Number):Boolean{ if(!dataLoaded) return false //outer loop for rows for(var r=0; r0)?Math.ceil(init/cantIcons) : Math.floor(init/cantIcons) //Fix zero on first page if(page==0) page = 1 return page } //Clear icons on stage public function clearStage():Void{ //Clear icons on stage var last:Number = counter+cantIcons //copy to clip timeline and make a reference t.counter=0; t.last = last; t.onEnterFrame = function(){ this["h"+counter++].removeMovieClip() if(counter==last) { delete this.onEnterFrame } } } /* * getter-setter for state * @param state could be single or icons */ private function setState(state:String):Void{ this.state = state } public function getState():String{ return state } }