Flaş AS3.0 PHP Değişkenler?

2 Cevap php

Bu zaman çizelgesi üzerinde herhangi php değişkenler kamu ve erişilebilir yapmak mümkün mü?

(Ben bunu almayı deneyin eğer o iş olmaz) sadece belge sınıfı olarak ayarlarsanız ben dahil komut çalışıyor. Değişkenler ana zaman çizelgesi üzerinde dinamik metin alanlarına metin geçmek.

The problem: It will pull the information and display it when the SWF first loads but if I move to my second frame and then back it erases the information. It also will not pass any variables to the second frame. The only way to see the variables after going back to the first frame is to reload the whole SWF. I'm pretty much stuck at this point trying to make the variables persistent through all frames.

Bu benim kod:

package {
import flash.display.MovieClip;
import flash.events.*;
import flash.net.*;
import flash.display.Stage;

public class Main extends MovieClip
{
    public function Main() {

        var request:URLRequest = new URLRequest("http://localhost/mytest2/dataLayer.php");
        request.method = URLRequestMethod.GET;

        var loader:URLLoader = new URLLoader();
        loader.dataFormat = URLLoaderDataFormat.VARIABLES;
        loader.addEventListener(Event.COMPLETE, completeHandler);
        loader.load(request);

        function completeHandler(evt:Event) {

            var username = evt.target.data.username;
            var pclass = evt.target.data.pclass;
            var hpoints = evt.target.data.hpoints;
            var spoints = evt.target.data.spoints;

            username_txt.text = username;
            class_txt.text = pclass;
            hpoints_txt.text = hpoints;
            spoints_txt.text = spoints;

        }
    }
}
}

2 Cevap

Neden FlashVars tag / özelliği kullanmaz?

Flash mevcut PHP değişkenleri bir dizi yapmak için, bir diziye bunları birleştirmek ve http_build_query flashvars param oluşturmak için kullanabilirsiniz:

$vars = array('var_one' => $var_one, 'var_two' => $var_two);
$flashvars = http_build_query($vars);

// ...

echo "<PARAM NAME=FlashVars VALUE=\"$flashvars\">";

Neler yapabileceğini, örneğin içinde senin varibles ile ayrı bir sınıf oluşturmak olduğunu:

  package
  {
      public static var username:String;
      public static var pclass:String;
      public static var hpoints:Number;
      public static var spoints:Number;
      public class my_globals
      {
          public function my_globals():void {
            var request:URLRequest = new URLRequest("http://localhost/mytest2/dataLayer.php");
            request.method = URLRequestMethod.GET;

            var loader:URLLoader = new URLLoader();
            loader.dataFormat = URLLoaderDataFormat.VARIABLES;
            loader.addEventListener(Event.COMPLETE, completeHandler);
            loader.load(request);

          }

          private function completeHandler(evt:Event) {
            username = evt.target.data.username;
            pclass = evt.target.data.pclass;
            hpoints = evt.target.data.hpoints;
            spoints = evt.target.data.spoints;  
         }

      }
  } 

URL'yi ve ilk karede. Fla bu sınıfın yeni bir örneğini ve statik değişkenler aracılığıyla sınıf ve erişim alabilirsiniz her çerçeve oluşturmak, başka bir çözüm almak ve çok işlevleri ayarlamak oluşturmak olacaktır.

import my_globals;

var globals:my_globals = new my_globals();

username_txt.text = my_globals.username;
class_txt.text = my_globals.pclass;
hpoints_txt.text = my_globals.hpoints;
spoints_txt.text = my_globals.spoints;

Hope this helps, Cheers, Will