import mx.events.EventDispatcher; import mx.core.UIComponent; import mx.transitions.Tween import mx.transitions.easing.*; import it.sephiroth.image import it.sephiroth.utils import flash.filters.* import flash.geom.* import flash.display.* import flash.net.*; dynamic class it.sephiroth.imageSlider extends UIComponent { public var addEventListener :Function public var removeEventListener:Function public var dispatchEvent :Function var boundingBox:MovieClip var __width:Number var __height:Number var _dataProvider:Object var thumbs_viewer: MovieClip var showPicInfo: MovieClip var mainImage: MovieClip var upperMainBar: MovieClip var clip_info: MovieClip var e_card: MovieClip var download_alert:MovieClip var miniLoader: MovieClip var selectedIndex: Number var oldSelectedIndex:Number var panoramic: Number var loader_listener:Object var ls_comments: Object var ls_download: Object var loader:MovieClipLoader var thumbURL:String var image_link:TextField var $file:FileReference; static var symbolName:String = "imageSlider"; static var symbolOwner = imageSlider; var className:String = "it.sephiroth.imageSlider"; /** * constructor */ function imageSlider(){ //EventDispatcher.initialize(this); selectedIndex = 0; oldSelectedIndex = 0; $file = new FileReference(); initDownloadListener(); loader = new MovieClipLoader(); loader_listener = new Object(); loader_listener.target = this loader_listener.onLoadInit = function(target){ this.target.thumbs_viewer.disabled_mask._visible = false var bg = target._parent._parent._parent.bg target._parent._alpha = 0 if(this.target.panoramic == 1){ var optimal_size = Stage.width - 100 if(optimal_size > 1024){ optimal_size = 1024 } if(this.target.mainImage.mainImageContainer.vcr == undefined){ var mc = this.target.mainImage.mainImageContainer.attachMovie("vcr", "vcr", this.target.mainImage.mainImageContainer.getNextHighestDepth(), {_width:optimal_size, _height:250}) this.target.mainImage.mainImageContainer.attachMovie("boundingBox", "boundingBox", this.target.mainImage.mainImageContainer.getNextHighestDepth(), {_width:optimal_size, _height:250, _x:10, _y:10}) mc.setMask(this.target.mainImage.mainImageContainer.boundingBox); mc._x = 10 mc._y = 10 } else { var mc = this.target.mainImage.mainImageContainer.vcr } mc.attachImage(target) mc.speed = 2 mc.autospin = true mc.zoom = 100 this.target._visible = true new Tween(bg, "_width", Regular.easeOut, bg._width, mc.getSize()[0]+40, .5, true) new Tween(bg, "_height", Regular.easeOut, bg._height, mc.getSize()[1]+40, .5, true) if(target._parent._parent._parent._x != (this.target.__width/2) - ((mc.getSize()[0]+40)/2)){ new Tween(target._parent._parent._parent, "_x", Regular.easeOut, target._parent._parent._parent._x, (this.target.__width/2) - ((mc.getSize()[0]+40)/2), .5, true) } this.target.miniLoader._visible = false } else { /* purge mainImageContainer **/ for(var a in target._parent._parent){ if(target._parent._parent[a] != target._parent){ target._parent._parent[a].removeMovieClip(); } } //target._parent._parent.getInstanceAtDepth(target._parent.getDepth()-1).unloadMovie(); var tr = new Tween(bg, "_width", Regular.easeOut, bg._width, target._width+20, .5, true) new Tween(bg, "_height", Regular.easeOut, bg._height, target._height+20, .5, true) new Tween(target._parent._parent._parent, "_x", Regular.easeOut, target._parent._parent._parent._x, target._parent._parent._parent._parent.__width/2 - ((target._width+20)/2), .5, true) tr.target = this.target tr.mc = target tr.onMotionFinished = function(evt:Object){ this.target.miniLoader._visible = false if(random(2) == 1){ // added effect this.mc._parent._alpha = 100 var img1 = new BitmapData(this.mc._width, this.mc._height, false); var img2 = new BitmapData(this.mc._width, this.mc._height, false); img1.draw(this.mc); this.mc.attachBitmap(img1, 0) this.mc.attachBitmap(img2, 1) this.mc._parent.percent = 0 this.mc._parent.onEnterFrame = function(){ img2.threshold(img1, new Rectangle(0, 0, img1.width, img1.height), new Point(0, 0), ">=", (this.percent/100)*0xFFFFFF, 0xFFFFFF, 0xffffff, true); this.percent += 2 if(this.percent >= 100){ img1.dispose(); img2.dispose(); //this.holder.unloadMovie(); delete this.onEnterFrame } } } else { // original target._parent._alpha = 0 if(target._parent._alpha == 0){ new Tween(target._parent, "_alpha", Regular.easeOut, 0, 100, .8, true) } } delete this.onMotionFinished } } // create the link textfield var image = this.target._dataProvider.result.getItemAt( this.target.selectedIndex ) this.target.displayImageLink( image ); } loader_listener.onLoadProgress = function(target, loaded, total){ var perc:Number = Math.round(loaded/total*100) if(perc < 95){ this.target.miniLoader.value = "

loading... " + perc + "% (x)

" } else { this.target.miniLoader.value = "

loading... " + perc + "%

" } } loader_listener.onLoadError = function(){ this.target.thumbs_viewer.disabled_mask._visible = false this.target.miniLoader._visible = false this.target._parent.ErrorMessage("Error loading image...", 2.5); } ls_comments = new Object(); ls_comments.target = this; ls_comments.image_comments = function(evt:Object){ if(this.target.findWindowByName("clip_info") != undefined){ var window = this.target.findWindowByName("clip_info"); if(window.ID == evt.id){ window.comment_text.invalidate(); var text = ""; var c_date, c_user, c_text, c_item; for(var a = 0; a < evt.result.getLength(); a++){ c_item = evt.result.getItemAt(a); c_date = utils.formatMySQLDate(c_item.commentDate); c_user = c_item.userName; c_text = c_item.commentText; text += "

" + c_user + " ( " + c_date + " )

" + c_text + "


"; } text += "
"; window.comment_text.text = text; } } } ls_comments.image_rated = function(evt:Object){ var id = evt.id var image = this.target._dataProvider.result.getItemAt( this.target.selectedIndex ); if(image.id == id){ image.votes = evt.votes image.rating = evt.rating this.target.updateUpperMainBar( image ); } } ls_comments.image_commented = function(evt:Object){ /* reload the image comments */ var image = this.target._dataProvider.result.getItemAt( this.target.selectedIndex ); image.comments += 1 this.target.hideCommentPanel(); this.target._parent.getImageComments( evt.id ); this.target.updateUpperMainBar( image ); } ls_comments.ecard_sent = function(evt:Object){ trace('ls_comments.ecard_sent') this.target.hideECard(); } this.dispatchEvent({type:'loaded', target:this}) this._parent.addEventListener("image_comments", ls_comments); this._parent.addEventListener("image_rated", ls_comments); this._parent.addEventListener("image_commented", ls_comments); this._parent.addEventListener("ecard_sent", ls_comments); boundingBox._visible = true; } function init():Void{ EventDispatcher.initialize(this); boundingBox.onPress = function(){} boundingBox.useHandCursor = false; } private function initDownloadListener():Void{ ls_download = new Object(); ls_download.target = this; ls_download.onSelect = function(file:FileReference):Void { this.target.download_alert = this.target.createClassObject(it.sephiroth.mloaderWindow, "download_alert", 14997) this.target.download_alert._x = Math.round((Stage.width/2) - (this.target.download_alert.getSize()[0]/2)) this.target.download_alert._y = Math.round((Stage.height/2) - (this.target.download_alert.getSize()[1]/2)) this.target.download_alert.label = "downloading image \"" + file.name + "\""; this.target.download_alert.setStyle("borderColor", 0x009900); this.target.download_alert.progressBar = true this.target.download_alert.open(true, false); this.target.download_alert.addEventListener("close", this.target._parent.ls_thumbloader) } ls_download.onCancel = function(file:FileReference):Void { this.target.download_alert.close(); } ls_download.onOpen = function(file:FileReference):Void { trace("onOpen: " + file.name); } ls_download.onProgress = function(file:FileReference, bytesLoaded:Number, bytesTotal:Number):Void { this.target.download_alert.value = Math.round((bytesLoaded/bytesTotal)*100) } ls_download.onComplete = function(file:FileReference):Void { this.target.download_alert.label = "Download Complete!!"; this.target.download_alert.setStyle("borderColor", 0xFFFF00) this.target.download_alert.close(2); } ls_download.onIOError = function(file:FileReference):Void { this.target.download_alert.label = "There was an Error downloading image..." this.target.download_alert.setStyle("borderColor", 0xFF0000); this.target.download_alert.close(2) } $file.addListener( ls_download ); } function createChildren(){ this.attachMovie("thumbs_viewer", "thumbs_viewer", 1, {_y:40}); this.attachMovie("upperMainBar", "upperMainBar", 10, {_y:-40, _x:0}); upperMainBar.backToLibraryBtn.onRelease = function(){ this._parent._parent.hide(); } thumbs_viewer.prev.onRelease = function(){ this._parent._parent.select( this._parent._parent.selectedIndex-1 ); } thumbs_viewer.next.onRelease = function(){ this._parent._parent.select( this._parent._parent.selectedIndex+1 ); } thumbs_viewer.selected_image.onPress = function(){} thumbs_viewer.selected_image.useHandCursor = false thumbs_viewer.disabled_mask.onPress = function(){} thumbs_viewer.disabled_mask.useHandCursor = false thumbs_viewer.disabled_mask._visible = false mainImage = this.attachMovie("mainImage", "mainImage", 3); miniLoader = this.attachMovie("miniLoader", "miniLoader", 4); miniLoader._visible = false miniLoader.cancel_loading = function(){ var old_index = this._parent.oldSelectedIndex; this._visible = false; this._parent.loader.unloadClip( this._parent.loader['target_clip'] ); this._parent.loader.unloadClip( this._parent.loader['target_clip']._parent ); this._parent.loader.removeListener( this._parent.loader_listener ); this._parent.thumbs_viewer.disabled_mask._visible = false; this._parent.setSelection( old_index, true, false ); this._parent.updateUpperMainBar( this._parent._dataProvider.result.getItemAt( old_index )); if(this._parent.mainImage.bg._height > 1){ this._parent.displayImageLink( this._parent._dataProvider.result.getItemAt( old_index )); } } mainImage.bg._width = 0 mainImage.bg._height = 0 upperMainBar.upperMainBarBg._width = Stage.width upperMainBar.upperMainBarBg._height = 36 upperMainBar.showCommentsBtn.onRelease = function(){ this._parent._parent.displayPicInfo(true, true); } upperMainBar.downloadBtn.onRelease = function(){ this._parent._parent.downloadCurrentImage(); } upperMainBar.ecardBtn.onRelease = function(){ this._parent._parent.displayECard(); } new Tween(upperMainBar, "_y", Regular.easeOut, -40, 0, 1, true); /** create the image link textfield **/ image_link = this.createTextField("image_link", 11, 0, 0, 100, 20); var tf:TextFormat = new TextFormat(); tf.font = "font1"; tf.size = 8; tf.color = 0x006699; image_link.autoSize = "left"; image_link.embedFonts = true; image_link.html = true; image_link.setNewTextFormat(tf); image_link.htmlText = ""; } public function hide(){ this.dispatchEvent({type:"hide", target:this}); var index = this.selectedIndex var tr = new Tween(this, "_alpha", Regular.easeOut, 100, 0, .5, true); new Tween(upperMainBar, "_y", Regular.easeOut, 0, -40, .5, true); tr.target = this; tr.onMotionFinished = function(){ delete this.target._parent.imageSlider this.target.removeMovieClip(); } } function select(selection:Number){ oldSelectedIndex = this.selectedIndex; setSelection(selection, true) } /** * Download the current selected image */ public function downloadCurrentImage():Void{ var image = _dataProvider.result.getItemAt( selectedIndex ); if(!$file.download( thumbURL + "?id=" + image.id + "&mode=large", image.name)){ this._parent.ErrorMessage("Failed to open save dialog", 2.5); } } /** * display all the informations about image */ public function displayPicInfo(animate:Boolean, updateComments:Boolean):Void{ hideECard(); var index = selectedIndex; var image = _dataProvider.result.getItemAt( index ); trace("clip_info: " + findWindowByName("clip_info")) if( findWindowByName("clip_info") == undefined ){ clip_info = this.attachMovie("infoClip", "clip_info", 9); clip_info._x = Stage.width/2 - clip_info._width/2 clip_info._y = -400 } ttra('clip_info: ' + clip_info); clip_info.ID = image.id clip_info.title.text = image.name clip_info.description.text = image.description clip_info.rating_mc.rating = image.rating clip_info.info.text = "views: " + image.views + newline + Math.round((image.image_weight/1024)*10)/10 + " Kb, size: " + image.image_size + "px" if(animate == true){ var tr = new Tween( clip_info, "_y", Regular.easeOut, -400, 20, .7, true); tr.target = this tr.onMotionFinished = function(){ this.target.loadThumbPreview() } } if( updateComments == true ){ /** retrieve the image comments from the server **/ this._parent.getImageComments( image.id ); } } /** * Hide the info clip */ public function hidePicInfo():Void{ hideCommentPanel(); var tr = new Tween( clip_info, "_y", Regular.easeOut, clip_info._y, -400, .5, true ); tr.target = clip_info tr.onMotionFinished = function(){ delete this.target._parent.clip_info this.target.removeMovieClip(); } } /** * Open the send e-card form */ public function displayECard(){ hidePicInfo(); var index:Number = selectedIndex; var image:Object = _dataProvider.result.getItemAt(index); if( findWindowByName("e_card") == undefined ){ e_card = this.attachMovie("ecardClip", "e_card", 8); e_card._x = Stage.width/2 - e_card._width/2 e_card._y = -400 } e_card.ID = image.id e_card.FID = this._parent.getFolderId() var tr = new Tween( e_card, "_y", Regular.easeOut, -400, 20, 1, true); tr.target = this tr.onMotionFinished = function(){ this.target.e_card.from_name.text = this.target._parent.$user.username this.target.e_card.from_email.text = this.target._parent.$user.email this.target.loadThumbPreview() } } /** * Hide the e-card clip */ public function hideECard():Void{ var tr = new Tween( e_card, "_y", Regular.easeOut, e_card._y, -400, .5, true ); tr.target = e_card tr.onMotionFinished = function(){ delete this.target._parent.e_card this.target.removeMovieClip(); } } private function sendEcard(mc:MovieClip){ trace('send ecard'); var id:Number = mc.ID var fid:Number = mc.FID var from_name:String = mc.from_name.text var from_email:String = mc.from_email.text var to_name:String = mc.to_name.text var to_email:String = mc.to_email.text var message:String = mc.message_text.text var w:Number = it.sephiroth.iGallery.t_width var h:Number = it.sephiroth.iGallery.t_height var linkURL:String = this._parent.baseURL if(utils.string.strip(to_name) == ""){ this._parent.ErrorMessage("Plase specify (to) name", 2) return } if(!utils.string.isEmail(to_email)){ this._parent.ErrorMessage("Plase provide a valid (to) email", 2) return } if(utils.string.strip(from_name) == ""){ this._parent.ErrorMessage("Plase specify (from) name", 2) return } if(!utils.string.isEmail(from_email)){ this._parent.ErrorMessage("Plase provide a valid (from) email", 2) return } if(utils.string.strip(message) == ""){ this._parent.ErrorMessage("Plase insert a message for the e-card", 2) return } this._parent.Send_ECard(id, fid, from_name, from_email, to_name, to_email, message, w, h, linkURL); } /** * display the image direct link below image movieclip */ public function displayImageLink(image:Object){ var image_url:String = this._parent.baseURL + "?fid=" + this._parent.getFolderId() + "&id=" + image.id this.image_link.htmlText = "" + image_url + "" this.image_link._y = Math.round(Stage.height - 30) this.image_link._x = Math.round((Stage.width/2) - (this.image_link.textWidth/2)) } private function loadThumbPreview(){ var window = findWindowByName("clip_info"); if(window == undefined){ window = findWindowByName("e_card"); } var id = window.ID window.preview.dummy.unloadMovie(); window.preview.createEmptyMovieClip("dummy", 1) window.preview.createEmptyMovieClip("holder", 2) window.preview.dummy.createEmptyMovieClip("holder", 1) window.preview.dummy._visible = false; var temp_listener:Object = new Object(); temp_listener.onLoadInit = function(target:MovieClip){ var mainImage = new BitmapData(target._width, target._height, false) mainImage.draw(target, target.transform.matrix, target.transform.colorTransform, "normal", new Rectangle(target._x, target._y, target._width, target._height)) var tempImage = new BitmapData(target._width, target._height, false, 0xEEEEEE) window.preview.holder.attachBitmap(mainImage, 10) window.preview.holder.attachBitmap(tempImage, 11) window.preview.filters = [new GlowFilter(0x006699, .8, 4, 4, 1, 3), new DropShadowFilter(2, 45, 0x000000, 60, 4, 4, .6, 3)] target._parent.percent = 100 target._parent.onEnterFrame = function(){ var xpercent:Number = 100-this.percent tempImage.pixelDissolve(mainImage, new Rectangle(0, 0, 80, 60), new Point(0, 0), 1, 80*60*xpercent/100); this.percent -= 3 if(this.percent < -3){ delete this.onEnterFrame; } } } var mcl:MovieClipLoader = new MovieClipLoader(); mcl.addListener( temp_listener ); if(this.panoramic == 1){ mcl.loadClip(thumbURL + "?id=" + id + "&mode=thumb&width=" + window.preview._width + "&height=" + window.preview._height + "&panoramic=1", window.preview.holder); } else { mcl.loadClip(thumbURL + "?id=" + id + "&mode=thumb&width=" + window.preview._width + "&height=" + window.preview._height, window.preview.holder); } } function setSize(w:Number, h:Number){ super.setSize(w, h); thumbs_viewer._x = __width/2 - (260/2) if(this.panoramic == 1){ mainImage._x = (__width/2) - ((mainImage.mainImageContainer.vcr.getSize()[0]+40)/2) mainImage._y = thumbs_viewer._y + thumbs_viewer._height + 10 miniLoader._x = __width/2 - miniLoader._width/2 miniLoader._y = mainImage._y + (((mainImage.mainImageContainer.vcr.getSize()[1]+40)/2)) - miniLoader._height/2 } else { mainImage._x = (__width/2) - (mainImage._width/2) mainImage._y = thumbs_viewer._y + thumbs_viewer._height + 10 miniLoader._x = __width/2 - miniLoader._width/2 miniLoader._y = mainImage._y + (mainImage._height/2) - miniLoader._height/2 } if(findWindowByName("clip_info") != undefined){ var window = findWindowByName("clip_info"); window._x = Stage.width/2 - window._width/2 } boundingBox._width = w; boundingBox._height = h; upperMainBar.upperMainBarBg._width = w image_link._y = Math.round(Stage.height - 30) image_link._x = Math.round((Stage.width/2) - (image_link.textWidth/2)) } function set dataProvider(dp:Object):Void{ _dataProvider = dp; initNavigation(); } private function initNavigation(){ var path:String var thumb:MovieClip for(var a in thumbs_viewer.thumbNavigation){ thumbs_viewer.thumbNavigation.removeMovieClip(); thumbs_viewer.thumbNavigation._x = 50 } for(var a = 0; a < _dataProvider.result.getLength(); a++){ path = thumbURL + "?id=" + _dataProvider.result.getItemAt(a).id + "&mode=thumb&width=30&height=30" if(this.panoramic == 1){ path += "&panoramic=1" } thumb = thumbs_viewer.thumbNavigation.attachMovie("thumbContainer", "tc_" + a, a+1) thumb._x = (a*32) thumb.createEmptyMovieClip("holder", 1) thumb.path = path; thumb.index = a; thumb.onRelease = function(){ this._parent._parent._parent.select(this.index); } } } public function setSelection(n:Number, animate:Boolean, broadcastEvent:Boolean){ if(n >= 0 && n < _dataProvider.result.getLength()){ if(animate){ new Tween(thumbs_viewer.thumbNavigation, "_x", Regular.easeInOut, thumbs_viewer.thumbNavigation._x, 114-(n*32), .3, true) } else { thumbs_viewer.thumbNavigation._x = 114-(n*32) } selectedIndex = n } if(n <= 0){ thumbs_viewer.prev.enabled = false } else { thumbs_viewer.prev.enabled = true } if(n >= _dataProvider.result.getLength() - 1){ thumbs_viewer.next.enabled = false } else { thumbs_viewer.next.enabled = true } /** display thumbs images **/ for(var a = selectedIndex - 2; a < selectedIndex + 3; a++){ if(thumbs_viewer.thumbNavigation["tc_" + a].holder._url == thumbs_viewer.thumbNavigation["tc_" + a]._url){ thumbs_viewer.thumbNavigation["tc_" + a].holder.loadMovie(thumbs_viewer.thumbNavigation["tc_" + a].path) } } /** hide info clip */ if(findWindowByName("clip_info") != undefined){ hidePicInfo(); } if(broadcastEvent != false){ this.dispatchEvent({type:"change", target:this}) } } public function getImageAt(n:Number){ return _dataProvider.result.getItemAt(n); } public function show(n:Number){ image_link.htmlText = ""; var image = _dataProvider.result.getItemAt(n) if(this.panoramic == 1){ if(mainImage.mainImageContainer.mc_holder != undefined){ var mc = mainImage.mainImageContainer.mc_holder } else { var mc = mainImage.mainImageContainer.createEmptyMovieClip("mc_holder",mainImage.mainImageContainer.getNextHighestDepth()) mc.createEmptyMovieClip("holder", 1) } } else { var mc = mainImage.mainImageContainer.createEmptyMovieClip("mc_" + mainImage.mainImageContainer.getNextHighestDepth(),mainImage.mainImageContainer.getNextHighestDepth()) mc.createEmptyMovieClip("holder", 1) } loader.addListener( loader_listener ) var path:String = thumbURL + "?id=" + image.id + "&mode=middle&width=" + (Stage.width-80) + "&height=" + (Stage.height-150) + "&save=0&force=1" //trace(path) if(this.panoramic == 1){ path = thumbURL + "?id=" + image.id + "&mode=large&panoramic=1" trace(path) if(this._url.indexOf("file:") == 0){ // path = "C:\\Documents and Settings\\acrugnola\\Desktop\\Flash 8\\vcr2\\img\\" + ['amsterdam.jpg','ibiza.jpg','greece.jpg','canyon.jpg','vralonis_b1_98.jpg','zoomspag_b1_10.jpg'][selectedIndex] // } } loader['target_clip'] = mc.holder; loader.loadClip(path, mc.holder); miniLoader._visible = true miniLoader._y = mainImage._y + (mainImage._height/2) - miniLoader._height/2 if(mainImage._width < 2){ miniLoader._y = (Stage.height/2) - miniLoader._height/2 } miniLoader.value = "

loading... (x)

" thumbs_viewer.disabled_mask._visible = true; updateUpperMainBar( image ) } private function updateUpperMainBar(image:Object){ upperMainBar.comment_txt.autoSize = "left" upperMainBar.votes_txt.autoSize = "left" upperMainBar.comment_txt.text = "Comments: " + image.comments upperMainBar.votes_txt.text = "Total votes: " + image.votes upperMainBar.showCommentsBtn._x = upperMainBar.sp_1._x + 1 upperMainBar.showCommentsBtn._width = upperMainBar.comment_txt._width + 4 upperMainBar.showCommentsBtn._x = upperMainBar.comment_txt._x upperMainBar.sp_2._x = upperMainBar.comment_txt._x + upperMainBar.comment_txt._width + 5 upperMainBar.rating_mc._x = upperMainBar.sp_2._x + 9 upperMainBar.rating_mc.rating = image.rating upperMainBar.rating_mc.applyRating(image.rating); upperMainBar.votes_txt._x = upperMainBar.sp_2._x + 9 upperMainBar.sp_3._x = upperMainBar.rating_mc._x + upperMainBar.rating_mc._width + 9 // download button upperMainBar.download_txt._x = upperMainBar.sp_3._x + 5 upperMainBar.downloadBtn._x = upperMainBar.sp_3._x + 1 upperMainBar.sp_4._x = upperMainBar.download_txt._x + upperMainBar.download_txt._width + 5 upperMainBar.downloadBtn._width = upperMainBar.sp_4._x - upperMainBar.sp_3._x - 2 // ecard button upperMainBar.ecard_icon._x = upperMainBar.sp_4._x + 5 upperMainBar.ecard_txt._x = upperMainBar.ecard_icon._x + upperMainBar.ecard_icon._width + 5 upperMainBar.ecardBtn._x = upperMainBar.sp_4._x + 2 upperMainBar.sp_5._x = upperMainBar.ecard_txt._x + upperMainBar.ecard_txt._width + 5 upperMainBar.ecardBtn._width = upperMainBar.sp_5._x - upperMainBar.sp_4._x - 2 } /** * find a movieclip in the gallery */ public function findWindowByName(n:String){ return this[n]; } /** * Vote the selected image (1-5) */ public function RateImage(n:Number):Void{ var index = selectedIndex; var image = _dataProvider.result.getItemAt( index ); this._parent.RateImage(image.id, n); } /** * open the bottom comment panel */ public function openCommentPanel():Void{ var window = this.findWindowByName("clip_info") var tr = new Tween(window.comment_panel, "_y", Regular.easeOut, window.comment_panel._y, 261, .5, true) tr.target = window.comment_panel tr.parent = this tr.onMotionFinished = function(){ this.target.name_txt.text = this.parent._parent.$user.username Selection.setFocus(this.target.name_txt); } } /** * hide the comment panel */ public function hideCommentPanel():Void{ var window = this.findWindowByName("clip_info") window.comment_panel.name_txt.text = "" window.comment_panel.message_txt.text = "" var tr = new Tween(window.comment_panel, "_y", Regular.easeOut, window.comment_panel._y, 124, .5, true) } /** * send a comment to the server for the specified image */ public function sendComment(name:String, message:String, id:Number):Void{ if(name == "" or message == ""){ this._parent.ErrorMessage("Please fill all input fields before!", 2.5); } else { this._parent.SendComment(name, message, id); } } }