我是flash和动作脚本的完全开始,我对其他编程语言有一定的了解。
通过尝试帮助朋友,我在他的公司网站上添加了一个由其他人制作的联系表格。
他的网站是全闪存,带有一个加载多个页面的索引框架。
我构建了新的contact.swf并在本地进行了测试,并通过直接从浏览器访问它来托管并嵌入我尝试将其替换为没有联系表单的旧contact.swf。
在测试期间,一切都很好但是当包含在网站中时,表单无效。 该表单有一些规则可以防止带有绿色文本警告的空字段。当我访问它时,它在网页中单独嵌入它可以工作,当我访问它时由index.swf加载它即使我按下提交按钮也没有。
所以我假设问题出在index.swf动作脚本中。
加载联系人页面的按钮具有以下代码:
on (rollOver) {
gotoAndPlay(2);
}
on (rollOut) {
gotoAndPlay(11);
}
on (release) {
_root.main.secondary.loadMovie("contact.swf");
_root.main.logo.gotoAndPlay("s1");
}
我认为这是电影加载的方式,或者在索引影片中有类似掩码阻止联系表格的东西。
如果需要,我也可以提交索引或联系人的fla。
感谢
LE
我试图添加到我的contact.swf _lotroot = true;我得到编译错误。
contact.swf的动作脚本是:
stop();
import flash.events.*;
import flash.net.URLLoader;
import flash.net.URLLoaderDataFormat;
import flash.net.URLRequest;
// ----------------------------------------------------------------
var variables:URLVariables = new URLVariables();
// Be sure to change this URL to the PHP parse file on your site server
var varSend:URLRequest = new URLRequest("http://www.mydomain.tld/form.php");
var varLoader:URLLoader = new URLLoader;
varSend.method = URLRequestMethod.POST;
varSend.data = variables;
status_txt.text = "";
submit_btn.addEventListener(MouseEvent.CLICK, ValidateAndSend);
function ValidateAndSend(event:MouseEvent):void{
//validate form fields
if(!name_txt.length) {
status_txt.text = "Introduceti numele dvs.";
} else if(!companie_txt.length) {
status_txt.text = "Introduceti numele companiei.";
} else if(!telefon_txt.length) {
status_txt.text = "Introduceti numarul de telefon.";
} else if(!email_txt.length) {
status_txt.text = "Introduceti o adresa de email.";
} else if(!validateEmail(email_txt.text)) {
status_txt.text = "Introduceti o adresa de email corecta.";
} else if(!message_txt.length) {
status_txt.text = "Introduceti mesajul.";
} else {
status_txt.text = "Multumim " + name_txt.text + ", mesajul a fost trimis!";
variables.userName = name_txt.text;
variables.userEmail = email_txt.text;
variables.userMsg = message_txt.text;
variables.companie = companie_txt.text;
variables.telefon = telefon_txt.text;
varLoader.load(varSend);
}
}
function validateEmail(str:String):Boolean {
var pattern:RegExp = /(\w|[_.\-])+@((\w|-)+\.)+\w{2,4}+/;
var result:Object = pattern.exec(str);
if(result == null) {
return false;
}
return true;
}
答案 0 :(得分:0)
您为原始网站提供的代码位于AS2中,但联系方式SWF中的代码位于AS3中。您无法将AS3加载到AS2中,因此您必须使用AS2重写联系表单。