Flex: получение обратной связи от URLLoader после отправки информации в файл coldfusion - PullRequest
0 голосов
/ 28 июня 2011

У меня есть приложение для планирования, которое позволяет пользователям сохранять любые изменения. Когда пользователь нажимает кнопку «Сохранить», Flex отправляет всю информацию в скрипт Coldfusion, который разбирает информацию и отправляет ее в базу данных. Это все работает хорошо и хорошо, но я хотел бы иметь возможность отображать некоторый текст пользователю, говорящему что-то вроде «Ваш файл был успешно сохранен» или «Произошла ошибка. Пожалуйста, свяжитесь с администратором».

Моя функция AS выглядит следующим образом:

import flash.net.URLLoader;
import flash.net.URLRequest;
private function save():void
{
    var tempString:String = new String;
    // Set up a URL request, loader, and variables 
    var progressOutURL:URLRequest = new URLRequest("saveSchedule.cfm");
    var progressOutLoader:URLLoader = new URLLoader(); 
    var progressOutVars:URLVariables = new URLVariables(); // Set the variables to be sent out 

    for (var i:int = 0; i < wholeProject.length; i++)
    {
        tempString = new String;
        tempString = wholeProject[i].projectTitle + "|" + wholeProject[i].workingTitle + "|" + wholeProject[i].startDate + "|";
        for (var j:int = 0; j < wholeProject[i].thisBlock.length; j++)
        {
            tempString = tempString + wholeProject[i].thisBlock[j].startOffset + "," + wholeProject[i].thisBlock[j].numDays + "," + wholeProject[i].thisBlock[j].role + "," + wholeProject[i].thisBlock[j].sID + "," + wholeProject[i].thisBlock[j].isConflict + "," + wholeProject[i].thisBlock[j].positionType + ";";
        }
        progressOutVars["project" + i] = tempString;
    }

    progressOutURL.method = URLRequestMethod.POST; 
    progressOutURL.data = progressOutVars; 
    progressOutLoader.load (progressOutURL);
}

И мой файл coldfusion выглядит следующим образом (сейчас он просто сохраняет cfdump информации, чтобы я мог быть уверен, что данные были отправлены):

<cfsavecontent variable="toOutput">
    <cfdump var="#FORM#" />
</cfsavecontent>

<cffile action="write" file="#GetDirectoryFromPath(GetCurrentTemplatePath())#output.html" output="#toOutput#" />

Есть ли способ, что "progressOutLoader.load (progressOutURL);" возвращает логическое значение или что-то, говорящее, была ли отправка успешной?

1 Ответ

2 голосов
/ 28 июня 2011
progressOutLoader.addEventListener(Event.COMPLETE,resultHandler);

public function resultHandler(event:Event):void {
 Alert.show("Success");
}

Аналогичным образом обрабатывают и другие события.http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/net/URLLoader.html

Почему вы не используете Flex HTTPService?вместо URLLoader

...