2011-08-24 95 views
0

我是Flash和动作脚本中的一个完全搭档,我对其他编程语言有一定的了解。加载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"); 
} 

我认为要么是影片加载的方式要么有类似的指标电影,块的接触形式的面具。

如果需要,我也可以提交索引或联系方式。

感谢

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|[_.\-])[email protected]((\w|-)+\.)+\w{2,4}+/; 
    var result:Object = pattern.exec(str); 
    if(result == null) { 
     return false; 
    } 
    return true; 
} 
+0

首先,_root将是index.swf,它可能没有链main.secondary或main.logo。 –

+0

您是否在contact.swf的代码中使用了_root引用?你是否知道,如果你这样做,它会引用index.swf的_root(除非在contact.swf中设置_lockroot = true)。 –

+0

我用反馈编辑了这个问题 – tuiti

回答

0

您提供原始网站的代码在AS2,但是从你的联系人SWF的代码在AS3。您无法将AS3加载到AS2中,因此您将不得不使用AS2重写您的联系表单。