对不起了,我实在找不到flash或AS3的版块,只能发在这里了,谢版主见谅
有个问题一直得不到解决,在此立贴以求解决方案正题:
需求是flash通过PHP获取了一个XML文件,然后要显示在FLASH页面上
因为这种请求---接收的交互方式比较多,所以我不可能把全部请求都写在FLASH场景的第一贞里
我设计了一个AS类
public class UserInfo
{
   var userName:String;
   var userSex:String;
   
   //在这里还想通过该类的构造方法来实现数据的加载
   public UserInfo()
   {
       var req:URLRequest("test.php");
       var loader:URLLoader();
       ......这里省略一些代码
       loader.addEventListener(Event.COMPLETE,loaded); 
   }
   
   function loaded(e:Event)
   { 
     var loadData:XML=XML((e.currentTarget as URLLoader).data);
     userName=loadData.userName;
     userSex = loadData.userSex;
     trace(userName);//这里打印出用户名
   }
}然后我在场景的第一贞里写上这样的代码
var userInfo:UserInfo = new UserInfo();
trace(userInfo.userName);//这行打出来的却是null
而UserInfo类里的loaded里打出来的却是真正的值我的理解是,因为构造方法里取得了用户信息,却是通过回调方法"loaded"来处理的,
当我在场景里实例化一个用户信息对象时,该回调尚未被执行,所以打出来的值是null。\请问各位,有什么好的办法可以把请求信息单独写在类里面吗?
我是不想把这些代码写在场景的第一贞里,这样太乱了。

解决方案 »

  1.   

    写在帧里的代码就不能用class,只有文档类可以用class,另外,如果你的flash有很多帧的话,建议写在帧里,另外这种问题建议去天地会论坛问问,懂很多语言的高手多的是,又不只会AS。
      

  2.   

    谢谢楼上的兄台,
    我是在文档里写了一个CLASS,然后在场景的第一帧里引用,
    不知URLLoader类的加载事件有没有同步机制,如果加载回调函数可以设为同步的话就方便多了,可是我翻遍官方文档也没见有这样的说法。天地会我也看了,确实是很多这方面的高手,然后注册了个ID进去,却不知为何发不了贴子。