View Single Post

  #17 (permalink)  
Old 30-11-07, 18:03
Vlizzard Vlizzard is offline
Member
 
Join Date: Sep 2007
Posts: 71
Rep Power: 2
Vlizzard is on a distinguished road
Re: Flash CS3 GuestBook

ovvio ...chiedo scusa ti invio tutta il Main.as del guestbook modificato...

Code:
 
/*
 *************************************
  Guest Book                               
  http://www.FlepStudio.org     
  © Author: Filippo Lughi          
  version 1.0                                
 *************************************
 */
package
{
 import flash.display.MovieClip;
 import flash.text.TextField;
 import flash.geom.Rectangle;
 import flash.utils.Timer;
 import fl.controls.SliderDirection;
 import flash.events.Event;
 import flash.events.MouseEvent;
 import fl.events.SliderEvent;
 import flash.events.TimerEvent;
 import flash.net.URLLoader;
 import flash.net.URLVariables;
 import flash.net.URLRequest;
 import flash.net.URLRequestMethod;
 import flash.net.URLLoaderDataFormat;
 import flash.events. IEventDispatcher;
 
 public class Main extends MovieClip
 {
  private var file_xml:LoadingXML;
  
  private var mess_container_mc:MovieClip;
  private var mask_mc:MovieClip;
  
  private var timer:Timer;
  
  private var formStartX:Number;
  private var formStartY:Number;
  
  var contr:String;
  
  public function Main()
  {
   init();
   createContainer();
   loadXML();
  }
  
  private function init():void
  {
   stage.frameRate=31;
   
   info_mc.x=stage.stageWidth/2;
   info_mc.y=stage.stageHeight/2;
   
   bg_mc.x=0;
   bg_mc.y=0;
   bg_mc.width=stage.stageWidth;
   bg_mc.height=stage.stageHeight;
   
   form_mc.alpha=0;
   box_mc.alpha=0;
   
   slide_mc.visible=false;
  }
  
  private function createContainer():void
  {
   mess_container_mc=new MovieClip();
   mess_container_mc.alpha=0;
   addChild(mess_container_mc);
  }
  
  private function loadXML():void
  {
   file_xml=new LoadingXML(this);
  }
  
  public function displayGuestBook():void
  {
   removeLoadingInfo();
   createClipsForEachMessage();
  }
  
  private function removeLoadingInfo():void
  {
   info_mc.stop();
   removeChild(info_mc);
  }
  
  private function createClipsForEachMessage():void
  {
   for(var i:int=0;i0)
     Store.clips_array[i].y=Store.clips_array[i-1].y+Store.clips_array[i-1].height+10;
   }
   fadeIn(mess_container_mc);
  }
  
  private function createMask():void
  {
   mask_mc=new MovieClip();
   addChild(mask_mc);
   mask_mc.graphics.beginFill(0xFF6600,1);
   mask_mc.graphics.drawRect(0,0,Store.clips_array[0].width+10,form_mc.height+box_mc.height+15);
   mask_mc.x=Store.clips_array[0].x-5;
   mask_mc.y=Store.clips_array[0].y-5;
   
   mess_container_mc.mask=mask_mc;
  }
  
  private function initForm():void
  {
   form_mc.scope_mc.mouseChildren=false;
   
   form_mc.x=Store.clips_array[0].x+Store.clips_array[0].width+20+form_mc.width/2;
   form_mc.y=Store.clips_array[0].y+form_mc.height/2;
   formStartX=form_mc.x;
   formStartY=form_mc.y-20;
   fadeIn(form_mc);
   
   swapChildren(mess_container_mc,form_mc);
   
   form_mc.message_txt.background=true;
   form_mc.message_txt.backgroundColor=0xFFFFFF;
   form_mc.scope_mc.buttonMode=true;
   form_mc.scope_mc.addEventListener(MouseEvent.MOUSE_DOWN,setDown);
   form_mc.scope_mc.addEventListener(MouseEvent.MOUSE_UP,setUp);
  }
  
  private function setDown(evt:MouseEvent):void
  {
   form_mc.removeEventListener(Event.ENTER_FRAME,moveFormBack);
   var rect:Rectangle=new Rectangle(evt.currentTarget.parent.width/2,evt.currentTarget.parent.height/2,
                 stage.stageWidth-evt.currentTarget.parent.width,stage.stageHeight-evt.currentTarget.parent.height);
   evt.currentTarget.parent.startDrag(false,rect);
  }
  
  private function setUp(evt:MouseEvent):void
  {
   evt.currentTarget.parent.stopDrag();
   var xx:Number=box_mc.x-form_mc.x;
   var yy:Number=box_mc.y-form_mc.y;
   var distance:Number=Math.sqrt(xx*xx+yy*yy);
   if(distance<100)
    suckTheForm();
   else
    notCentered();
  }
  
  private function initBox():void
  {
   box_mc.x=form_mc.x;
   box_mc.y=form_mc.y+form_mc.height+10;
   fadeIn(box_mc);
  }
  
  private function initSlide():void
  {
   slide_mc.width=mask_mc.height;
   slide_mc.direction=SliderDirection.VERTICAL;
   slide_mc.move(Store.clips_array[0].x-20,Store.clips_array[0].y+mask_mc.height);
   slide_mc.minimum=mess_container_mc.x;
   slide_mc.maximum=mess_container_mc.height-mask_mc.height;
   slide_mc.visible=true;
   slide_mc.value=slide_mc.minimum;
   slide_mc.rotation*=-1;
   
   slide_mc.addEventListener(SliderEvent.THUMB_PRESS,pressing);
   slide_mc.addEventListener(SliderEvent.THUMB_RELEASE,stopTheLogic);
   slide_mc.addEventListener(SliderEvent.CHANGE,pressing);
  }
  
  private function pressing(evt:SliderEvent):void
  {
   evt.target.addEventListener(Event.ENTER_FRAME,go);
  }
  
  private function go(evt:Event):void
  {
   mess_container_mc.y=-evt.target.value;
  }
  
  private function stopTheLogic(evt:SliderEvent):void
  {
   evt.target.removeEventListener(Event.ENTER_FRAME,go);
  }
  
  private function fadeIn(m:MovieClip):void
  {
   m.addEventListener(Event.ENTER_FRAME,go);
   function go(evt:Event):void
   {
    var da:Number=1-evt.currentTarget.alpha;
    var aa:Number=da*.2;
    evt.currentTarget.alpha+=aa;
    
    if(Math.abs(da)<=.1)
    {
     evt.currentTarget.alpha=1;
     evt.currentTarget.removeEventListener(Event.ENTER_FRAME,go);
    }
   }
  }
  
  private function suckTheForm():void
  {
   var arr:int=0;
   var arr2:Number=box_mc.x;
   var arr3:Number=box_mc.y;
   var arr4:int=0;
   form_mc.addEventListener(Event.ENTER_FRAME,suck);
   function suck(evt:Event):void
   {
    var dx:Number=arr-evt.currentTarget.scaleX;
    var ax:Number=dx*.2;
    evt.currentTarget.scaleX+=ax;
    evt.currentTarget.scaleY+=ax;
    
    var dX:Number=arr2-evt.currentTarget.x;
    var aX:Number=dX*.2;
    evt.currentTarget.x+=aX;
    
    var dY:Number=arr3-evt.currentTarget.y;
    var aY:Number=dY*.2;
    evt.currentTarget.y+=aY;
    
    var da:Number=arr4-evt.currentTarget.alpha;
    var aa:Number=da*.2;
    evt.currentTarget.alpha+=aa;
    
    if(Math.abs(dx)<=.1)
    {
     evt.currentTarget.scaleX=arr;
     evt.currentTarget.scaleY=arr;
     evt.currentTarget.removeEventListener(Event.ENTER_FRAME,suck);
     checkTheForm();
    }
   }
  }
  
  private function checkTheForm():void
  {
    if(EmailChecker.checkEMail(form_mc.email_txt.text))
   {
    switch(form_mc.name_txt.text)
    {
     case '':
     notValid('name');
     break;
     
     default:
     switch(form_mc.message_txt.text)
     {
      case '':
      notValid('message');
      break;
      
      default:
      inviaDati();
      if(contr!='1')
        {
           sendMessage();
        break;
        } 
      else
        {
           notValid('mail');
        }
     }
     break;
    }
   }
   else
    notValid('mail');
  }
  
  private function inviaDati():void
  {
   var ContrEmail:String=String(form_mc.email_txt.text);
   var variables:URLVariables=new URLVariables(ContrEmail);
   var richiesta:URLRequest=new URLRequest();
   richiesta.url='http://www.nomedelsito.com/control_email.php';
   richiesta.method=URLRequestMethod.POST;
   richiesta.data=variables;
   var loader:URLLoader=new URLLoader();
   loader.dataFormat=URLLoaderDataFormat.VARIABLES;
   addListeners(loader);
   try 
   {
    loader.load(richiesta);
   } 
   catch (error:Error) 
   {
    trace('Unable to load richiestaed document.');
   }
  }
  
  private function addListeners(d:IEventDispatcher):void
  {
   d.addEventListener(Event.COMPLETE,completato);
  }
  
  private function completato(e:Event):void
  {
   var loader:URLLoader=URLLoader(e.target);  
   var vars:URLVariables=new URLVariables(loader.data);
   contr=(vars.answer).toString();
   
  }
  
  private function notValid(s:String):void
  {
   var arr:int=1;
   var arr2:Number=formStartX;
   var arr3:Number=formStartY;
   var arr4:int=1;
   form_mc.addEventListener(Event.ENTER_FRAME,suck);
   function suck(evt:Event):void
   {
    var dx:Number=arr-evt.currentTarget.scaleX;
    var ax:Number=dx*.2;
    evt.currentTarget.scaleX+=ax;
    evt.currentTarget.scaleY+=ax;
    
    var dX:Number=arr2-evt.currentTarget.x;
    var aX:Number=dX*.2;
    evt.currentTarget.x+=aX;
    
    var dY:Number=arr3-evt.currentTarget.y;
    var aY:Number=dY*.2;
    evt.currentTarget.y+=aY;
    
    var da:Number=arr4-evt.currentTarget.alpha;
    var aa:Number=da*.2;
    evt.currentTarget.alpha+=aa;
    
    if(Math.abs(dx)<=.1)
    {
     evt.currentTarget.scaleX=arr;
     evt.currentTarget.scaleY=arr;
     evt.currentTarget.removeEventListener(Event.ENTER_FRAME,suck);
     
     switch(s)
     {
      case 'mail':
      evt.currentTarget.scope_mc.output_txt.text=' EMAIL NON VALIDO ';
      resetOutput();
      break;
      
      case 'name':
      evt.currentTarget.scope_mc.output_txt.text=' NOME NON VALIDO ';
      resetOutput();
      break;
      
      case 'message':
      evt.currentTarget.scope_mc.output_txt.text=' MESSAGGIO NON VALIDO ';
      resetOutput();
      break;
     }
    }
   }
  }
  
  private function notCentered():void
  {
   form_mc.addEventListener(Event.ENTER_FRAME,moveFormBack);
  }
  
  private function moveFormBack(evt:Event):void
  {
   var arr2:Number=formStartX;
   var arr3:Number=formStartY+10;
   var dX:Number=arr2-evt.currentTarget.x;
   var aX:Number=dX*.3;
   evt.currentTarget.x+=aX;
   
   var dY:Number=arr3-evt.currentTarget.y;
   var aY:Number=dY*.3;
   evt.currentTarget.y+=aY;
   
   if(Math.abs(dX)<=.3)
   {
    evt.currentTarget.x=arr2;
    evt.currentTarget.y=arr3;
    evt.currentTarget.removeEventListener(Event.ENTER_FRAME,moveFormBack);
   }
  }
  
  private function resetOutput():void
  {
   timer=new Timer(1500,1);
   timer.addEventListener(TimerEvent.TIMER,reset);
   timer.start();
   function reset(evt:TimerEvent):void
   {
    form_mc.scope_mc.output_txt.text=' ';
   }
  }
  
  private function sendMessage():void
  {
   var send_the_message:SendTheMessage=new SendTheMessage(form_mc.name_txt.text,form_mc.email_txt.text,form_mc.message_txt.text,this);
  }
 }
}
Reply With Quote