我有一個程序(如3.0 .swf),它接收用戶名,電子郵件以及他們想要接收的所需信息。然後它會創建一個電子郵件並將這些變量傳遞到我的服務器,在那裏一個php文件將它發送給用戶輸入的電子郵件。當我在Flash中測試程序時效果很好。電子郵件通過。但是,當我導出它的程序無法連接。我的設置是「僅限訪問網絡」。我也發佈了一個AIR和html版本,但都沒有成功。我花了2個半小時搜索,發現有同樣問題但沒有答案的人。這是阻止我啓動程序的唯一因素!Flash ActionScript 3.0 URL連接僅在測試時有效,發佈時失敗
繼承人我的代碼:
import flash.events.Event;
//---------------Setup variables
var loader:URLLoader = new URLLoader();
var req:URLRequest = new URLRequest("http://myserver/phpfile.php");
var variables:URLVariables = new URLVariables();
loader.dataFormat = URLLoaderDataFormat.VARIABLES;
req.method = URLRequestMethod.POST;
var Info:String = "";
//tab index
txName.tabIndex = 0;
txEmail.tabIndex = 1;
//listener fot textfield changes
txName.addEventListener(Event.CHANGE, txErrorCheck);
txEmail.addEventListener(Event.CHANGE, txErrorCheck);
function txErrorCheck(event:Event):void {
if (txError.text.length>0) {
txError.text = "";
}
}
SEND.addEventListener(MouseEvent.CLICK, sendForm);
function sendForm(evt:MouseEvent):void {
if (txName.text.length<=0) {
txError.text = "Please Enter A Name";
} else if (!txEmail.text.length || txEmail.text.indexOf("@") == -1 || txEmail.text.indexOf(".") == -1) {
txError.text = "Please Enter A Valid Email!";
} else {
mcLoader.gotoAndPlay(2);
variables.senderName = txName.text;
variables.senderEmail = txEmail.text;
variables.Info = Info;
req.data = variables;
loader.load(req);
loader.addEventListener(Event.COMPLETE, receiveLoad);
}
}
function receiveLoad(evt:Event):void {
if (evt.target.data.retval == 1) {
mcLoader.gotoAndStop(25);
} else {
mcLoader.gotoAndStop(1);
txError.text="** SERVER ERROR **";
}
}
//Reset form
function resetForm(evt:MouseEvent):void {
txName.text="";
txEmail.text="";
}
stop();
你的服務器上有跨域文件嗎? – Marty