PHP Flash değişkene

1 Cevap php

Ben PHP / javascript kullanarak bir tarayıcı tabanlı bir uygulama için taşıma ediyorum Visual Basic ile yazılmış basit bir bağımsız uygulama var.

Orijinal VB uygulama simgesi ve nokta sayaçları ile bazı basit gömülü flash oyunlar vardır. Belirteç ve puan değerleri uygulama ve oyun arasında değişken olarak aktarılmaktadır.

Ben (zaten mevcut actionscript değişkenleri kullanarak), actionscript kodunuzu değiştirmeden benim PHP limanda aynı etkiyi elde etmek için çalışıyorum.

Aşağıda veritabanından bir değer yükleme ve FlashVars kullanarak flaş bu değeri gönderme Visual Basic kodu:

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 bu yeniden çalışıyorum, ama bunu uygulamaya başlamak için nasıl bir kayıp değilim.

Flaş değişkenler kamuya ilan ve küresel ithalat kullanılır:

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.*;

Değişken 'TotalEntries' ilk bildirimi:

public var totalEntries:int = 0;

ve bu actionscript kullanılan TotalEntries bir parça olan

    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

Sonunda bir mySQL veritabanına bu değerleri geri geçen olacağım.

Any insight into this would be extremely helpful, Thanks!

1 Cevap

PHP böyle yürümüyor mu; bu her zaman iletişim ve konuşabilirsiniz kalıcı bir durumda, oturup olacak değil. Sen vatansız arka uç veri göndermek ve almak için bir mekanizma gerekir. Şimdi, neyse ki, flaş kurabiye ile mükemmel çalışır, böylece PHP oturumları kullanarak bir sorunu üretmek değildir. Yani, soru Flash yoluyla PHP veri geçmek, ya da flaş ile Javascript için değişkenleri geçmek ve daha sonra PHP bunları göndermek istiyorum olup olmadığıdır.

Doğrudan yoluyla-flaş rota (benimle ayı, bu AS 2.0 olduğunu, ancak çalışması gerekir):

Actionscript:

function getData (path:String, req:Object, fn:Function) {
   var q:Object = new LoadVars();
   for (var prop in req) {
       q[prop] = req[prop];
   }
   q.action = path;
   q.onLoad = fn;
   q.sendAndLoad("/hooks/integrate.php",q,"POST");
}

Bu örnekte, tek bir dosyaya geçmek ve ben yapmak istiyorum ne elleçleme dosyayı söyler POST parametresi, "eylem", belirtin.

<?php
if (!isset($_POST['action'])) { die; }
switch($_POST['action']) {
    case 'something':
// snip...
}

Ve sonra işlevini çağıran bir çırpıda:

getData('saveVar',{varname: 'foo', varvalue: foo},mySuccessFunction);

Alternatif olarak, XHR / AJAX kullanarak bir şeyler kurmak ve flash.external.ExternalInterface.call() yöntemi kullanarak, ancak bu cevabın kapsamı dışında böyle bir çözüm olduğunu kurarak Javascript değişkenleri geçebileceği.

Uzun lafın kısası, nedeniyle devletsiz bir istek tabanlı web hizmeti olarak PHP'nin doğaya VB yaptığımız gibi bunu yapmak için hızlı ve kolay bir yolu yoktur; Eğer başka bir mekanizma istihdam etmek zorunda olacak.