AMFPHP2.0 flash 调用 php 程序示例

注意:

amf 2.0 里在flash 调用 php 的示例;flash 也得放到 apache server里面;调用的时候写相对路径;这是跟amf 1.9版本的区别;

2.php

<?php
class users1
{
var $image = "";
}
class eko
{
function getData()
{
mysql_connect("localhost","root","root");
mysql_select_db("test");
mysql_query("SET NAMES UTF8");
$sql="select * from test.eko";
$result = mysql_query($sql);
$u = 0;
$result2 = array();
//while ($row = mysql_fetch_object($result)) {
while ($row = mysql_fetch_array($result)) {
$users['id'] = $row['id'];
$users['name'] = $row['name'];
$users['image'] = $row['image'];
//$users->image = $row->image;
$result2[$u] = $users;
$u++;
}
$num = count($result2);
//echo $num;
for($i = 0; $i < $num; $i++){
//echo $result2[$i]["image"];
//echo $result2[$i]["image"];

}
/*foreach ( $tmp as $result2) {
echo "$tmp\n";
}
*/
return $result2;
}
}
$c = new eko();
$c->getData();

?>

 

1. flash程序

package
{
//开始导入必要的类包
import flash.events.Event;
import flash.display.MovieClip;
import flash.net.NetConnection;
import flash.net.Responder; //Responder和NetConnection是必要的两个类
import flash.display.Loader;//用来加载外部图片
import flash.net.URLRequest;//用来转换图片的目标路径
import flash.events.NetStatusEvent;
public class Main extends MovieClip
{
var gateway:String="../amfphp/index.php"; //必要步骤,这里是gateway.php的路径
var connection:NetConnection; //申明connection对象
var responder:Responder; //申明responder对象
var myLoader:Loader=new Loader(); //Loader对象
var myRe:URLRequest; //myRe 图片的路径
function netStatusEventHandle(e:NetStatusEvent):void {
trace(e.toString);
}
public function Main():void
{
var testError:String = "";
trace("start");
testError += "start";
//try{
responder=new Responder(onResult,null); //连接amfphp成功就触发onResult函数,失败就触发onFault函数
connection=new NetConnection();
connection.connect(gateway); //以上三步是必须的
var invoke:String = "eko/getData";
testError += invoke;
connection.call(invoke, responder); //调用amfphp服务段的eko下的getData函数了,仔细看清楚他们之间的关系
//connection.addEventListener(flash.events.NetStatusEvent.NET_STATUS,netStatusEventHandle);
//_netConnection.call("PizzaService/getPizza", new Responder(handleResult, null));
testError += gateway;
/*}catch(err:Error) {
testError += err.message;
}finally
{
testError += "finally";
}
*/
myRe=new URLRequest("02.jpg");
myLoader.load(myRe);//默认用myLoader来显示01.jpg这张图片
with(myLoader)
{
x=60;
y=150;//设置一下图片的位置
}
addChild(myLoader); //舞台中显示图片
txt1.text = testError;
}
private function onResult(result:Array):void
{
trace("s");
txt1.text += "S----";
//连接成功后返回对象result,这里我们要对数据进行处理.
var arrRs:Array=new Array(); //我们用一个数组来接收返回的记录
//arrRs = result["serverInfo"]["initialData"]; //从数据库中传来的值都存在这里,至于为什么在这里是实验得出来的,记住就好,它是个二维数组
arrRs = result;// ["initialData"];
trace(arrRs.length);
//是否记得mysql中的字段 id=arrRs[0][0],name=arrRs[0][1],image=arrRs[0][2]
for(var i:int;i<arrRs.length;i++)
{
myList.addItem({label:arrRs[i]["name"], data:arrRs[i]["image"]});
//将返回的数据注入组件myList中,注意label(图片名)和data(图片地址)
}
//监听,当myList被点击的时候myLoader加载对应的图片
myList.addEventListener(Event.CHANGE, changeHandler);
}
private function onFault(fault:Object):void
{
trace("F");
txt1.text += "F" + fault.description;
trace(String(fault.description));
}
private function changeHandler(event:Event):void
{
myRe=new URLRequest(event.target.selectedItem.data);
//注意event.target.selectedItem.data对应myList上被点击的图片名称
myLoader.load(myRe);//加载新的图片
}
}
}

 

转载于:https://www.cnblogs.com/liulf/archive/2012/03/01/2375475.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值