我正在使用以下代码使用flash as3(actionscript 3.0)检查mysql数据库中的更新。
代码将在我的服务器上使用PHP检查数据库,并在Flash应用程序中显示详细信息。
我遇到的问题是我每隔8秒就尝试运行一次这段代码,但是当我运行代码并且trace(urlRequest);
时,我会在不到20秒的时间内获得100条跟踪!
我认为给setInterval(checkDataBase, 8000);
会解决这个问题并且会每8秒运行一次代码,但我没有运气!
有人可以就此问题提出建议吗?
这是我的代码:
addEventListener(Event.ENTER_FRAME,checkForNewOrder);
function checkForNewOrder (e:Event):void
{
checkDataBase();
}
/*
function we use to send the form
*/
function checkDataBase ():void
{
/*
we use the URLVariables class to store our php variables
*/
var phpVars:URLVariables = new URLVariables();
phpVars.result_textL = result_textL.text;
/*
we use the URLRequest method to get the address of our php file and attach the php vars.
*/
var urlRequest:URLRequest = new URLRequest("http://mywebsite.com/checkOrder.php");
trace(urlRequest);
/*
the POST method is used here so we can use php's $_POST function in order to recieve our php variables.
*/
urlRequest.method = URLRequestMethod.POST;
/*
this attaches our php variables to the url request
*/
urlRequest.data = phpVars;
/*
we use the URLLoader class to send the request URLVariables to the php file
*/
var urlLoader:URLLoader = new URLLoader();
urlLoader.dataFormat = URLLoaderDataFormat.VARIABLES;
/*
runs the function once the php file has spoken to flash
*/
urlLoader.addEventListener(Event.COMPLETE, showResult);
/*
we send the request to the php file
*/
urlLoader.load(urlRequest);
}
setInterval(checkDataBase, 8000);
/*
function to show result
*/
function showResult (e:Event):void
{
orderDetails.text = "" + e.target.data.result_message;
if(orderDetails.text != "")
{
rejectBtn.y = 380.20;
}
}
答案 0 :(得分:4)
addEventListener(Event.ENTER_FRAME,checkForNewOrder);
这会导致您使用您设置的帧速率调用您的函数,因此每秒30次。
setIntervall将添加对该函数的其他调用。它不会覆盖输入框架。
摆脱输入框架寄存器,你应该好好去。