Transport.as
protected function getStandardVars() : URLVariables
{
var params:URLVariables = new URLVariables();
var timestamp:Number = new Date().valueOf();
params.time_stamp = timestamp;
params.app_id = Config.getConfig("appId");
params.app_user_id = Config.getConfig("appUserId");
if(Util.isLocal()){//判断是否本地
params.user_id = Config.getConfig("userId");
}else {//调用JSDataManager.getInstance()方法,获取用户信息
params.user_id=JSDataManager.getInstance().userInfo._userId;
}
params.network = Config.getConfig("network");
params.session_key = Config.getConfig("sessionKey");
params.flash_version = Config.getConfig("version");
return params;
}
public function performAppInit(success:Function, fail:Function) : void
{
var params:URLVariables = this.getStandardVars();
// JSDataManager下的getFriendIDList()方法,获取好友列表
var fids:String=JSDataManager.getInstance().getFriendIDList();
if(fids){// 原来的param3是这个参数,我们现在修改成这样子即可,这个应该永远都存在吧
params.fids = fids;
}
var command:Command = new Command();
command.execute(params,INIT_METHOD,success,URLRequestMethod.POST,fail);
}
JSDataManger.as
private var _userInfo:Object;
private function getUserInfo():Object {
var result:Object = null;
var functionName:String = Config.getConfig("getInfoMethodName").toString();// 获取用户的信息
trace("functionName " + functionName);
try {
//调用js中的getInfo函数
result = ExternalInterface.call(functionName) as Object;
toString(result);
}catch(error:Error){
trace("get functionName " + functionName + "error");
}
return result;
}
private function getUserFriends():Object {
var result:Object = null;
var functionName:String = Config.getConfig("friendsMethodName").toString();// 获取用户的信息
trace("functionName " + functionName);
try {
//调用js中的getFriends函数
result = ExternalInterface.call(functionName);
var temp:Array = result as Array;
var exist:Boolean;// 自己是否存在于好友列表中
for each(var obj:Object in temp){
if(obj._userId == this.userInfo._userId){
exist = true;
break;
}
}
if(!exist){
if(this.userInfo){
(result as Array).push(this.userInfo);
}
}
}catch(error:Error){
trace("get functionName " + functionName + "error");
}
return result;
}
/**
* 初始化要传递给后台的好友数据的一个列表
*/
public function getFriendIDList():String {
var result:String;
var ids:Array = [];
for each(var friend:Object in this.friends){
if(friend._userId){// 不能是空,如果是空的话,会有一些问题
ids.push(friend._userId);
}
}
result = ids.join();
trace("ids " + result);
return result;
}
Preloader.as
Config.as
Config.setConfig("getInfoMethodName","getInfo");
Config.setConfig("friendsMethodName","getFriends");
Config.as
public static function setConfig(name:String,value:Object):void {
dictionary[name] = value;
}
/**
* @name:String 具体的key值
* @target:MovieClip 特别是在非movieClip的时候获取时会出现空对象的问题
* 因为在加载Perloader的时候,主工程并没有加载完成
* 所以我们可以把部分Config移植到Perloader里
* 具体的外部传入的params我们也是同样能获取的
*/
public static function getConfig(name:String):Object {
var v:String = "";
var main:Main = Main.Get();
if(main){
if(main.stage){
v = main.stage.loaderInfo.parameters[name];
}else if(main.parent){
v = main.parent.loaderInfo.parameters[name];
}else {
v = main.loaderInfo.parameters[name];
}
}
if(v != null && v != ""){
return v;
}else {
v = dictionary[name];
}
if(v != null && v != ""){
return v;
}else {
return "";
}下载本文