我有一個用Visual Basic編寫的簡單的獨立應用程序,我正在使用PHP/javascript移植到基於瀏覽器的應用程序。將Flash變量傳遞給PHP
原始的VB應用程序有一些簡單的帶有令牌和點計數器的嵌入式Flash遊戲。令牌和積分值作爲應用程序和遊戲之間的變量傳遞。
我想在不修改動作代碼(使用已存在的動作中的變量)的情況下在我的PHP端口中實現相同的效果。
下面是Visual Basic代碼與加載從數據庫中的值,併發布該值閃爍使用Flash變數:
Private Sub loadPlayer()
Try
If CtblPoints.CheckPointsByID(mCard) Then
objPoints = CtblPoints.GettblPointsByID(mCard)
objPlayerAc = CtblPlayerAccount.GettblPlayerAccountByPlayerID(objPoints.AccountId)
objPlayer = CtblPlayer.GettblPlayerByID(objPlayerAc.PlayerID)
objPlayerBal = CtblPlayerBalance.GettblPlayerBalanceByID(objPlayerAc.PlayerID)
objPlayerAcDetail = CtblPlayerAccountDetail.GettblPlayerAccountDetailByAmount(objPoints.AccountId)
strTotalPoints = Convert.ToString(objPlayerAc.Points)
strTotalWin = Convert.ToString(objPlayerBal.TokenAmount)
'Dim intTokenAmount As Decimal = Convert.ToDecimal(objPlayerBal.TokenAmount)
'strTotalWin = Convert.ToString(Convert.ToInt64(intTokenAmount * 100))
flashPlayer.Size = panelGame.Size
flashPlayer.FlashVars = "totalEntries=" & strTotalPoints & "&credit=" & strTotalWin
flashPlayer.LoadMovie(0, strGameFile)
flashPlayer.Play()
Else
Me.Close()
Dim frmInvCrd As New frmInvalidCard
frmInvCrd.ShowDialog()
End If
Catch ex As Exception
End Try
我試圖在PHP重建這一點,但我在一個損失以及如何開始實施它。
閃光燈的變量公開宣佈,並使用全球進口:
import com.atticmedia.console.*;
import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.media.*;
import flash.net.*;
import flash.system.*;
import flash.utils.*;
變量「爲totalEntries」首先聲明:
public var totalEntries:int = 0;
,這是被用來爲totalEntries的SNIP動作
public function notifyServerOfUnwonCredits(param1)
{
var remainder:* = param1;
if (this.useServer)
{
this.targetWinAmount = 0;
this.cancelUpdateOverTime = F9.setEnterFrame(this.updateOverTime);
fscommand("OverTime", "" + remainder);
this.flashVarsUpdatedAction = function()
{
originalTotalWin = totalWin;
return;
}// end function
;
}
else
{
this.setTotalEntries(100000);
this.setTotalWin(0);
}
return;
}// end function
最終我會將這些值傳回給myS QL數據庫。
任何洞察到這將是非常有益的, 謝謝!
感謝您的迴應,這爲我清除了一些東西。 雖然如果你不介意,還有更多的問題。 如果我使用JavaScript作爲中間人將一個變量傳遞給PHP,我是否還需要對現有的動作進行更改?我知道你是關於PHP是一個無狀態的基於請求的Web服務的觀點,但JavaScript的方式是一樣的嗎? 我想這個問題有種解決方法:有什麼我可以做,以避免修改現有的actionscript代碼庫? – Vorathe 2010-05-14 13:26:44
這可能是可能的,因爲只要頁面沒有刷新,JavaScript就會保持活動和持久性,認爲如果您將變量傳遞給PHP,它應該沒關係。我假設你的Flash應用程序會自動將你想要的任何變量作爲自己的屬性使用,所以你可以爲它們進行輪詢,但說實話,我通常使用'flash.external.ExternalInterface.call'來與JavaScript進行通信,所以我不完全確定。 – Dereleased 2010-05-14 22:35:32