Добавление параметров URL к URL в ActionScript - PullRequest
0 голосов
/ 06 июня 2009

Я пытаюсь добавить параметр URL в строку URL в ActionScript. В настоящее время я проверяю существующий URL-адрес, чтобы увидеть, есть ли у него "?" определить, существуют ли какие-либо параметры, чтобы определить, должен ли мой разделитель параметров быть "?" или же "&". Есть ли в ActionScript библиотека или служебный метод, который мог бы упростить приведенный ниже код?

var existingParameter:Boolean = existingUrl.indexOf("?") != -1;
var urlDelimiter:String = (existingParameter) ? "&" : "?";

var urlParameter:String = urlDelimiter + "ParameterName=" + parameterValue;
var completeUrl:String = existingUrl + urlParameter;

Ответы [ 2 ]

0 голосов
/ 06 июня 2009

Вы можете использовать утилиту HttpService и использовать ее способность принимать параметры через объект. Параметры могут быть отправлены как пары ключ-значение, а класс обрабатывает все остальное.

Вот пример служебного метода, который делает именно это:

public static function sendViaHttpService(url:String, 
                                          format:String,
                                          method:String, 
                                          onComplete:Function, 
                                          onFail:Function, 
                                          parameters:Object=null):void {

    var http:HTTPService = new HTTPService();
    http.url = url;
    http.resultFormat = format;
    http.method = method;

    // create callback functions which remove themselves from the http service 
    // Don't want memory leaks
    var pass:Function = function(event:ResultEvent):void {
        onComplete(event);
        http.removeEventListener(ResultEvent.RESULT, pass);
    }
    var fail:Function = function(event:FaultEvent):void {
        onFail(event);
        http.removeEventListener(FaultEvent.FAULT, fail);
    }

    http.addEventListener(ResultEvent.RESULT, pass);
    http.addEventListener(FaultEvent.FAULT, fail);

    // yeah, we're going to send this in with the date to prevent 
    // browser-caching...kludgey, but it works
    if (parameters == null) {
        parameters = new Object();
    }
    // always get new date so the URL is not cached
    parameters.date = new Date().getTime();

    http.send(parameters);
} //sendViaHttpService()

Параметры могут быть переданы в эту статическую функцию следующим образом:

var complete:Function = function(event:ResultEvent):void { /* your 
                                                              callback here */ };

var fail:Function = function(event:FaultEvent):void { /* your 
                                                         failure callback here */ };

var url:String = "<your URL here>";

sendViaHttpService(url, URLLoaderDataFormat.TEXT, URLRequestMethod.GET, complete, fail, { param1: 'value1', param2: 'value2' });
0 голосов
/ 06 июня 2009

Взгляните на URLVariables и URLLoader классов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...