Flash作為一種強大的應用開發(fā)平臺,與PHP結合可以實現(xiàn)更廣泛的功能。Flash AS(ActionScript)作為Flash平臺中的編程語言,與PHP結合可以實現(xiàn)更多功能,例如進行數(shù)據(jù)交互、實現(xiàn)在線應用、跨平臺等。
使用Flash AS與PHP結合時,需要在Flash中定義與PHP數(shù)據(jù)交互的函數(shù),一般有兩種方式:使用LoadVars類和使用XML。以LoadVars類為例,不難看到與PHP的數(shù)據(jù)交互代碼如下:
<code>var sendVars:LoadVars = new LoadVars(); sendVars.username = "example"; sendVars.password = "example123"; sendVars.sendAndLoad("checkUser.php", result, "POST"); function result(resultVars:LoadVars):Void{ //resultVars為從PHP返回的結果 if(resultVars.msg == "true"){ trace("用戶存在"); }else{ trace("用戶不存在"); } }</code>PHP代碼如下:
<code>$username = $_POST['username']; $password = $_POST['password']; //連接數(shù)據(jù)庫進行查詢 if($result){//查詢成功 echo "msg=true"; }else{//查詢失敗 echo "msg=false"; }</code>以上代碼實現(xiàn)了Flash發(fā)送用戶數(shù)據(jù)到PHP并接收PHP返回的結果。常見的應用場景是在Flash中進行登錄驗證,即Flash中通過輸入用戶名和密碼,提交到PHP進行驗證是否存在該用戶,并把驗證結果返回給Flash。 Flash AS也可以與PHP結合實現(xiàn)在線應用,例如在線制作個性簽名。用于動態(tài)生成個性簽名的PHP源碼如下:
<code>$name = $_GET['name']; //訪問該PHP文件時傳遞name參數(shù) header("Content-type: image/png"); //頭部指定輸出PNG格式的圖片 $im = imagecreatefrompng("sign.png"); $color = imagecolorallocate($im, 149, 149, 149); $fontfile = '../fonts/FZZJ.ttf'; $fontSize = 18; imagettftext($im, $fontSize, 0, 30, 40, $color, $fontfile, $name); //將用戶名寫入簽名圖像 imagepng($im); imagedestroy($im); //返回生成的PNG圖片</code>Flash AS代碼如下:
<code>var sendVars:LoadVars = new LoadVars(); sendVars.name = "張三";//name為生成簽名時需要傳遞的參數(shù) var signLoader:MovieClipLoader = new MovieClipLoader(); var signContainer:MovieClip = this.createEmptyMovieClip("signContainer", 0); signLoader.addListener(this); signLoader.loadClip("makeSign.php", signContainer, "POST"); function onLoadInit(mc:MovieClip):Void{ trace("簽名加載成功"); } function onLoadError(mc:MovieClip, errorCode:String, httpStatus:Number):Void{ trace("簽名加載失敗"); }</code>通過以上代碼,F(xiàn)lash可以向PHP傳遞參數(shù)并接收返回的簽名圖片,實現(xiàn)在線制作個性簽名的功能。 除此之外,F(xiàn)lash AS與PHP結合還可以實現(xiàn)跨平臺功能,例如在Flash中使用SOCKET函數(shù),與PHP服務器進行通信,實現(xiàn)跨平臺數(shù)據(jù)傳輸?shù)裙δ?。此處不再贅述? 總之,F(xiàn)lash AS與PHP結合可以實現(xiàn)更多功能,僅僅就數(shù)據(jù)交互、在線應用、跨平臺功能而言已經十分強大。但開發(fā)人員也需要防范安全性問題,避免被攻擊者利用漏洞造成損失。