Flash与页面、数据库(mysql)通讯

在页面中插入flash来动态生成flash动画时,很多时候需要页面、数据库通讯。

  • flash与页面通讯,是为了获得页面传递的参数,以ActionScript3为例,最简单的方法是使用flashvars,需要在页面插入如下代码

          flash中获得name1参数的方法是:var name2:String=root.loaderInfo.parameters.name1;这是在ActionScript3中的方法

  • flash与数据库通讯的方法:

          由于flash不能和数据库直接通讯,所以要借助其他语言,以flash借助PHP与MySQl数据通讯为例,首先需要工具AMF,下载地址为http://www.5etdemi.com/uploads/amfphp-1.9.beta.20070126.zip,下载后将其解压,在apache的www目录下新建phpweb目录,拷入其中,输入http://localhost/phpweb/gateway.php,看是否安装成功,打开php/php.ini,输入"extension=php_amf.dll"

保存,amfphp的web应用就配置好了,打开phpweb/gateway.php将127行"$gateway->setCharsetHandler("iconv", "ISO-8859-1", "ISO-8859-1");改为"$gateway->setCharsetHandler("iconv", "GBK", "GBK");使其支持中文,在phpweb/services下新建php文件如

 打开flash,新建flash文档,在第一帧输入以下代码:

var hostName:String = "http://localhost/phpweb/"; var gatewayUrl:String = hostName+"gateway.php"; var nc:NetConnection = new NetConnection(); nc.objectEncoding = 0; nc.connect(gatewayUrl); nc.call("HelloWorld.say",new Responder(onResult,onFault),"dfdf"); function onResult(re:Object) { trace(re); } function onFault(re:Object) { for (var i in re) { trace(i+"=>"+re[i]); } }

就可以实现flash与php通讯,只需在php中查询数据库返回结果,则flash就实现与数据库间接通讯。

  • 注意的问题:在传参数的过程中,汉字编码是导致通讯部成功的一个很重要的因素,如果flash传给PHP的是乱码,则在数据库中查询不到结果,如果PHP返回的汉字,传到flash是乱码,显示汉字会出问题。在PHP中可加入一些编码转换如:return mb_convert_encoding($userinfo, "UTF-8","GBK");

你可能感兴趣的:(Flash与页面、数据库(mysql)通讯)