A Flash Developer Resource Site

Results 1 to 2 of 2

Thread: Class to populate vars from URLLoader Problem

  1. #1
    Junior Member
    Join Date
    Sep 2004
    Posts
    4

    Class to populate vars from URLLoader Problem

    I'm trying to build a class that maps to a php class. The trouble is - I can trace() the variables i need, but if i instantiate the object within flash, the object methods dont return the values retrieved. I imagine this is an asynchronous issue - but i am totally stuck. Here's an example:

    Code:
    package {
    import flash.net.URLLoader;
    import flash.net.URLRequest ;
    import flash.net.URLRequestMethod;
    import flash.net.URLVariables;
    import flash.net.URLLoaderDataFormat;
    import flash.display.Sprite;
    import flash.events.*;
    import flash.net.*;
    import flash.utils.*;
    
    
    
    //import flash.xml;
    
    
      public class User extends Sprite  {
    
      private var _user_id:uint;
      private var _user_name:String;
      private var _password:String;
      //temp
      private var _textfield:TextField;
    
    
    
      public function User(cvalue=0) {
       _user_id = cvalue;
       readfromdb();
      }
    
      public function setuserid(xvalue:uint):void {
       _user_id = xvalue;
      }
    
      public function getuserid():uint {
       return _user_id;
      }
    
      public function setusername(xvalue:String):void {
       _user_name = xvalue;
      }
    
      public function getusername():String {
       if(_user_name == null){
        _user_name = "";
       }
       return _user_name;
      }
    
      public function setuserpassword(xvalue:String):void {
       _password = xvalue;
      }
    
      public function getuserpassword():String {
       if(_password == null){
        _password = "";
       }
       return _password;
      }
      
    
      
    
    
      public function readfromdb():void{
    
    
       var loader:URLLoader = new URLLoader();
       loader.addEventListener(Event.COMPLETE, xmlLoaded);
    	
    
    
       var srequest:URLRequest = new URLRequest();
       srequest.method = URLRequestMethod.POST;
       srequest.url = "http://localhost/flash_php_class_test/test.php";
    
       var variables:URLVariables = new URLVariables("userid="+_user_id);
       srequest.data = variables;
    	loader.load(srequest);
       
      
    	
    	
      }
      
      public function xmlLoaded(e:Event) {
    		_user_name = e.target.data;
    
      }
    
    
    }
    }
    I really hope someone can help me...

  2. #2
    Junior Member
    Join Date
    Sep 2004
    Posts
    4

    Resolved

    Wow am I a n00b.

    I had to check the event listener on the flash side for the call to be completed before trying to use the class methods.

    here's the changed code:

    PHP Code:
    package {
    import flash.net.URLLoader;
    import flash.net.URLRequest ;
    import flash.net.URLRequestMethod;
    import flash.net.URLVariables;
    import flash.net.URLLoaderDataFormat;
    import flash.display.Sprite;
    import flash.events.*;
    import flash.net.*;
    import flash.utils.*;



    //import flash.xml;


      
    public class User extends Sprite  {

      private var 
    _user_id:uint;
      private var 
    _user_name:String;
      private var 
    _password:String;
      
    //temp
      
    private var dataWritten:Event;



      public function 
    User(cvalue=0) {
       
    _user_id cvalue;
       
    readfromdb();
      }

      public function 
    setuserid(xvalue:uint):void {
       
    _user_id xvalue;
      }

      public function 
    getuserid():uint {
       return 
    _user_id;
      }

      public function 
    setusername(xvalue:String):void {
       
    _user_name xvalue;
      }

      public function 
    getusername():String {
       if(
    _user_name == null){
        
    _user_name "";
       }
       return 
    _user_name;
      }

      public function 
    setuserpassword(xvalue:String):void {
       
    _password xvalue;
      }

      public function 
    getuserpassword():String {
       if(
    _password == null){
        
    _password "";
       }
       return 
    _password;
      }
      

      


      public function 
    readfromdb():void{


       var 
    loader:URLLoader = new URLLoader();
       
    loader.addEventListener(Event.COMPLETExmlLoaded);
        


       var 
    srequest:URLRequest = new URLRequest();
       
    srequest.method URLRequestMethod.POST;
       
    srequest.url "http://localhost/flash_php_class_test/test.php";

       var 
    variables:URLVariables = new URLVariables("userid="+_user_id);
       
    srequest.data variables;
        
    loader.load(srequest);
       
      
        
        
      }
      
      public function 
    xmlLoaded(e:Event) {
            
    _user_name e.target.data;
            
    dataWritten = new Event("dataWritten"true);
            
    dispatchEvent(dataWritten);

      }


    }

    then in the flash file:
    PHP Code:
    var tt:User = new User(10000);
    tt.addEventListener("dataWritten"onDataReceived);
    function 
    onDataReceived(e:Event):void {
        
        
    debugger.text tt.getusername();

    and that is all.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  




Click Here to Expand Forum to Full Width

HTML5 Development Center