2011-05-22 57 views
4

我正在使用一些不接受products.php?cat=10作为目标的加载程序,因为找出文件名称和查询字符串的内容太愚蠢。是否有AS3函数将解析一个URL并返回基于查询字符串中的变量的URLRequest?AS3 URL字符串 - > URLRequest

+0

什么错误,你接受? – rzetterberg 2011-05-22 09:02:16

回答

8

有可能创造所有你需要:

import flash.net.URLRequest; 
import flash.net.URLLoader; 
import flash.net.URLVariables; 
import flash.net.URLRequestMethod; 
import flash.events.Event; 

// the path to the backend file 
var url : String = 'http://youdomain.com/filepath.php'; 

// url variables all which will appear after ? sign 
var urlVariables : URLVariables = new URLVariables(); 
    urlVariables['varname'] = 'varvalue'; 
    urlVariables['varname1'] = 'varvalue1'; 
    // here you can add as much as you need 

// creating new URL Request 
// setting the url 
var request : URLRequest = new URLRequest (url); 
    // setting the variables it need to cary 
    request.data = urlVariables; 
    // setting method of delivering variables (POST or GET) 
    request.method = URLRequestMethod.GET; 

// creating actual loader 
var loader : URLLoader = new URLLoader(); 
    loader.addEventListener(Event.COMPLETE, handleLoaderComplete) 
    loader.load (request); 
+0

是的,但如果url ='filepath.php?var1 = value1'呢?我知道如何做一个加载器,但我需要一个函数,将从现有的URL已经有一个查询字符串 – 2011-05-22 19:29:29

+0

加载器,对不起,我需要一个函数,将从一个URL已经有一个查询字符串的URLrequest。 AS3有吗? – 2011-05-22 19:36:43

+0

从我的观点来看,应该完全没有问题添加像你想要的变量。你可以按照我描述的方式或者像你想要的那样加载:“='filepath.php?var1 = value1'”你从你正在尝试使用的加载器中获取任何错误消息或者什么? – 2011-05-23 07:11:25

0

应该有与像products.php?cat=1网址没有问题。也许你只是忘了把crossdomain.xml放在你的服务器上。我想,它同时采用URLRequest

5

您可以使用URLVariables.decode是最常见的错误()来查询字符串转换成URLVariables对象的属性:

function getProperURLRequest (url : String) : URLRequest 
{ 
    var input : Array = url.split("?"); 
    var urlVars : URLVariables = new URLVariables(); 
    urlVars.decode(input[1]); 

    var urlReq : URLRequest = new URLRequest (input[0]); 
    urlReq.data = urlVars; 
    urlReq.method = URLRequestMethod.GET; 

    return urlReq; 
}