将变量从PHP传递到AS3

时间:2013-10-13 09:14:52

标签: php actionscript-3

这里我将会话值传递给AS3,但我不想像HTML代码那样发送页面的任何其他内容或内容,另一方面我不想让用户看到会话: x 在页面上。

<?php
session_start();
 $session = $_SESSION['myusername'] ;
 if(!isset( $_SESSION['myusername'])){
    header('location:../login.html');
} else{
 echo "session:".$session;
 header('location:speaking.html');
}
?>
<html>
<!-- some HTML code-->
</html>

更新:

 var sesname:String;
 var loader : URLLoader = new URLLoader();
 var req:URLRequest = new URLRequest("http://localhost/speaking.php");
 loader.dataFormat = URLLoaderDataFormat.VARIABLES; 
 loader.load(req);
 loader.addEventListener(Event.COMPLETE, connectComplete);
 function connectComplete(event:Event):void{
    var session:String = event.target.data;

    sesname= session;
    trace(sesname);
    nextFrame();
}

2 个答案:

答案 0 :(得分:0)

取决于您的AS3代码的外观,您可以在查询中添加参数以将其与用户区分开来并使用它在PHP中检测它:

urlVars = new URLVariables();
urlReq.data = urlVars;
urlVars.as3 = 1;

在您的代码中:

} elseif($_GET['as3']) {
  echo "session:".$session;
  header('location:speaking.html');
}

echo()之后,您可以使用exit()来停止执行php / html代码。

答案 1 :(得分:0)

PHP和AS3之间的通信如下所示。

首先,在php中启动会话并在html中输出swf flash对象。在您的情况下,我认为没有必要将会话变量传递给对象。

<?php
session_start();
// some other codes
?>
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="550" height="400" id="myFlashMovie" align="middle">
    <param name="movie" value="myFlashMovie.swf" />
</object>

其次,在swf flash对象中,AS3加载一个php脚本,如果从AS3调用它,它将仅返回名称 - 值对(注意fromFlash查询字符串)。

var req:URLRequest = new URLRequest("http://localhost/speaking.php?fromFlash=1");

第三,在speaking.php中,仅输出包含必要名称 - 值对的字符串。您可能需要urlencode该值。

<?php
session_start();
$session = $_SESSION['myusername'];
if(!isset( $_SESSION['myusername'])) {
    header('location:../login.html');
} else {
    if (isset($_GET['fromFlash']) && $_GET['fromFlash'] == 1) {
        echo "sessionVar=" . $_SESSION['myusername'];
        exit;
    } else {
        echo "session:".$session;
        header('location:speaking.html');
    }
}
?>
<html>
<!-- some HTML code-->
</html>

最后,AS3从被叫speak.php中提取数据。请注意,sessionVar变量与echo "sessionVar=" . $_SESSION['myusername'];

上方的输出相同
// this is the same swf object in step 2
var req:URLRequest = new URLRequest("http://localhost/speaking.php?fromFlash=1");
loader.addEventListener(Event.COMPLETE, connectComplete);
function connectComplete(event:Event):void{
   var variables:URLVariables = new URLVariables();

   trace(variables.sessionVar);
   nextFrame();
}