2010-07-21 122 views
1

Complete Flash/AS Noob here。朋友想要更改电子邮件地址,我正在协助。我注意到它在底部发布到formmail.php文件,但我想知道是否有更简单的方法,或者有人可以帮助我理解它到底是什么,以及AS如何处理POST方法,以便我可以重写脚本。由于formmail.php是从一些剧本“安德鲁·莱利([email protected])”从Flash/Actionscript 2.0发送电子邮件

function playTier() { 

    switch(this.tierContent.tier_txt.text) { 
     case "Sinking Ship": 
      bullseye_mc.arrow_ani._x = 205; break; 
     case "Piggy Bank": 
      bullseye_mc.arrow_ani._x = 180; break; 
     case "Loose Change": 
      bullseye_mc.arrow_ani._x = 155; break; 
     default: 
      trace("error for arrow posX") 
     } 
    bullseye_mc.arrow_ani.play(); 
    sendEmail(); 

} 

tierContent._alpha = 100; 

var recipient = "[email protected]"; 
var subject = "AP Form"; 
var nameField:String; 
var emailField:String; 
var phoneField:String; 
var commentsField:String; 

//alert format 
var alertFormat = new TextFormat(); 
alertFormat.color = 0xFF0000; 
var fields:Array = new Array("name_txt", "email_txt", "phone_txt", "comments_txt"); 

function alertField():Boolean { 
    var checkFailure:Number = 0; 
    for (i=0; i<fields.length; i++) { 
     if (this[fields[i]].length<1) { 
      checkFailure++; 
      trace(checkFailure+"-checkFailure"); 
      this[fields[i]].text = "Required!"; 
      this[fields[i]].setTextFormat(alertFormat); 

     } 
    } 
    if (checkFailure>0) { 
     return false; 
    } else { 
     return true; 
    } 

} 
function successWindow() { 
    this.createTextField("my_txt",1,90,212,300,0); 
    this.my_txt.background = true; 
    this.my_txt.backgroundColor = 0x00CC00; 
    my_txt.multiline = true; 
    my_txt.autoSize = true; 
    my_txt.wordWrap = true; 
    var my_fmt:TextFormat = new TextFormat(); 
    my_fmt.color = 0xFFFFFF; 

    my_fmt.size = 11; 
    my_fmt.font = "Verdana"; 
    my_txt.text = "Thank You. Your information has been submitted."; 
    my_txt.setTextFormat(my_fmt); 
} 

function progressWindow() { 
    this.createTextField("progress_txt",1,90,212,300,0); 
    this.progress_txt.background = true; 
    this.progress_txt.backgroundColor = 0xFD530B; 
    progress_txt.multiline = true; 
    progress_txt.autoSize = true; 
    progress_txt.wordWrap = true; 
    var progress_fmt:TextFormat = new TextFormat(); 
    progress_fmt.color = 0xFFFFFF; 

    progress_fmt.size = 11; 
    progress_fmt.font = "Verdana"; 
    progress_txt.text = "Transmitting your information."; 
    progress_txt.setTextFormat(progress_fmt); 
} 

function sendEmail() { 
    switch (alertField()) { 
     case true : 
      progressWindow() 
      trace("break!"); 
      var result_lv:LoadVars = new LoadVars(); 

      result_lv.onLoad = function(success:Boolean) { 
       if (success) { 
        trace("Form sent!"); 
        successWindow(); 
       } else { 
        trace("Error in sending"); 

       } 
      }; 
      var send_lv:LoadVars = new LoadVars(); 
      send_lv.recipient = "[email protected]"; 
      send_lv.subject = "AP Form"; 
      send_lv.sort = "order:name,company,email,phone,question1,question2,question3,question4,question5,question6,question7,question8" 
      send_lv.name = this._parent.q9.name_txt.text; 
      send_lv.company = this._parent.q9.company_txt.text; 
      send_lv.email = this._parent.q9.email_txt.text; 
      send_lv.phone = this._parent.q9.phone_txt.text; 

      send_lv.question1 = this._parent._parent.qArray[0]; 
      send_lv.question2 = this._parent._parent.qArray[1]; 
      send_lv.question3 = this._parent._parent.qArray[2]; 
      send_lv.question4 = this._parent._parent.qArray[3]; 
      send_lv.question5 = this._parent._parent.qArray[4]; 
      send_lv.question6 = this._parent._parent.qArray[5]; 
      send_lv.question7 = this._parent._parent.qArray[6]; 
      send_lv.question8 = this._parent._parent.qArray[7]; 


      send_lv.sendAndLoad("formmail.php",result_lv,"POST"); 




       if(lvBytesLoaded < lvBytesTotal) { 
        progressWindow() 
        } 


      break; 
     case false : 
      trace("Error missing fields- nothing sent"); 
      break; 
     default : 
      trace("Something bad happen"); 
      break; 
    } 
}; 

回答

1

如果你可以发布你的朋友想做的确切变化,这将是在回答你的问题有帮助。这听起来像你只需要改变电子邮件地址,但。


一个简短的回答你的问题:

有内置的代码有些混乱 - 有规定,人口,你会想到什么被发送到服务器变量。但是,这些变量在稍后会被引用,当信息被打包在send_lv对象中并被发送到服务器时。

如果您需要更改电子邮件地址的电子邮件地址,请将send_lv.recipient = "[email protected]";更改为send_lv.recipient = "[email protected]"或其他。

您可以修改的代码,以充分利用其靠近代码的顶部定义的recipient变种,像这样:

send_lv.recipient = recipient;

如果你这样做,那么你需要改变var recipient = "[email protected]";var recipient = "[email protected]";


较长的回答你的问题:

这是一个相当长的时间,因为我已经与AS2的工作,但你贴是干什么的,在一般的代码中,被收集电子邮件的元素,然后将这些元素发送到PHP脚本。 PHP脚本将使用它接收的元素来构建并发送电子邮件。在这种情况下,电子邮件将转至[email protected],主题为AP Form。我的猜测是,其余的元素 - name,company,email, phone,和问题列表(或更可能的问题答案)将用于构建电子邮件的主体。

send_lv对象表示将发送到服务器的信息。它也是将信息发送到服务器的手段(send_lv.sendAndLoad())。方法将信息发送到服务器并请求响应,在这种情况下触发successWindow函数。在发送信息的时间与从服务器收到结果的时间之间,会显示一个进度窗口。

您可以在LiveDocs文档中阅读关于此方法的一些信息。这是相当丰富的,并解释了sendAndLoad,sendload方法之间的差异。

希望有所帮助。

+0

非常感谢您的信息。我试图更改电子邮件地址,但它没有发送到我将其更改为的电子邮件,这导致我相信formmail.php脚本已损坏并且只写了一个新脚本。 谢谢,我会研究LiveDocs。 – Austin 2010-07-23 14:31:09

+0

你打赌。你有权访问formmail.php脚本吗?听起来像它可能使用电子邮件地址的硬编码值。 – 2010-07-23 15:52:59

1

也许有人可以帮助我了解它到底帖子

它串联职位作为url编码字符串send_lv对象的所有变量(姓名,公司,电子邮件等)。

如果您需要后端脚本中的变量,只需在send_lv对象上定义它并在php脚本中将其作为后置变量进行访问即可。

send_lv.dummy = "my new var"; //frontend 

$dummy = filter_input('dummy', INPUT_POST); // in php script 
+0

然后在php文件中,我所要做的就是$ dummy = $ _GET ['dummy'];它会正确追加? – Austin 2010-07-23 14:29:48

+0

如果你在send_lv对象上设置了一个属性,你可以像上面描述的那样在php脚本中以POST变量的形式访问该属性。 $ _POST ['dummy']会完成这项工作,但为了安全起见,我建议您查看http://www.php.net/manual/en/filter.filters.sanitize.php。 您可以使用“$ dummy = filter_input('dummy',INPUT_POST,FILTER_SANITIZE_EMAIL);”(过滤功能需要PHP 5> = 5.2.0)来清理电子邮件。 – 2010-07-23 21:55:06