Quantcast
Channel: 草羽的天空-艺技录 || Caoyusky-Blog » php
Viewing all articles
Browse latest Browse all 4

AS3和php通信

$
0
0

以为在as3里面和后台通讯也是那么简单的事情,但实践告诉你,还是要遇到很多麻烦,例如不像as2里面loadVars方法已经被废弃,而改用一系列的类来实现与后台数据的交互,这些类是:URLLoader,URLLoaderDataFormat,URLStream,URLVariables。
在使用URLLoaderDataFormat.VARIABLES时报以下错误:

Error: Error #2101: 传递给 URLVariables.decode() 的字符串必须是包含名称/值对的 URL 编码的查询字符串。

1
2
3
4
   at Error$/throwError()
    at flash.net::URLVariables/decode()
    at flash.net::URLVariables$iinit()
    at flash.net::URLLoader/flash.net:URLLoader::onComplete()

出现些错误其实在于php里的第一行echo输出的信息中是否包含了url参数方式的;

以下的方式是正确的:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
 
    $flashData = $_POST['message'];
 
    $phpMessage = 'im php message!';
 
    echo "phpMessage=$phpMessage&flashMessage=$flashData";
 
?>
 
或
 
<?php
 
    $flashData = $_POST['message'];
 
    $phpMessage = 'im php message!';
 
    echo "phpMessage=$phpMessage&flashMessage=$flashData";
 
    echo "其他信息";
 
?>
 
 
 
以下方式就会报错:
 
<?php
 
    $flashData = $_POST['message'];
 
    $phpMessage = 'im php message!';
 
    echo "sfsdfghfghfghfghgfhsf";    //不是url参数形式即不是 变量名=值 然后用 & 连接的格式;
 
?>
 
或
 
<?php
 
    $flashData = $_POST['message'];
 
    $phpMessage = 'im php message!';
 
    echo "klsdfjlsdkfjlksdjflkjsdf";      //这是第一个echo, flash找不到匹配的 url参数形式的字符串;
 
    echo "phpMessage=$phpMessage&flashMessage=$flashData";

这个echo就需要写的很规范了,不能像as2时代乱来了。不过一般时候,还是可以用2进制来监控,只要加载完毕就OK。


Viewing all articles
Browse latest Browse all 4

Trending Articles