我有一个用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