Flash组件与phpmysql数据库amfphp的应用
- flash影片与Mysql数据库的链接方法,读取信息桥梁是php5脚本链接的Amfphp模块。
- php的安装要全的版本有4个文件。设置支持mysql和amfphp模块安装。
- 再Apache2的环境服务器系统里做flash cs3 文档,和php文档。
- 先建数据库和表。在php用语言来建比较直观一点。
- $hostname = "localhost";
$username = "root";
$password = "sa123";
$con = mysql_pconnect($hostname, $username, $password);
if($con){echo "连接mysql服务器成功!<br>";}else{echo "连接mysql服务器出现错误,请检查。<br>";}
- // 数据库名称:phpFlash
// 数据表名: wenZhang
// 字段名有: id feiLei biaoTi neiRong yongHu yuedu laiYuan fBriqi
// 编号 分类 标题 内容 用户 阅读数 来源地 发表日期
$sqlku = "CREATE DATABASE phpFlash;";
$inretku = mysql_query($sqlku);
if($inretku){echo "创建了一个phpFlash数据库成功!<br>";}else{echo "创建数据库出现错误,请检查。<br>";}
- $strsqlBiao = "CREATE TABLE `wenZhang` (
`id` int(11) NOT NULL auto_increment,
`feiLei` varchar(26) character set utf8 COLLATE utf8_general_ci NOT NULL,
`biaoTi` varchar(60) character set utf8 COLLATE utf8_general_ci NOT NULL,
`neiRong` text character set utf8 COLLATE utf8_general_ci NOT NULL,
`yongHu` varchar(26) character set utf8 COLLATE utf8_general_ci NOT NULL,
`yuedu` int(4) NOT NULL,
`laiYuan` varchar(60) character set utf8 COLLATE utf8_general_ci NOT NULL,
`fBriqi` date NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM;";
mysql_select_db("phpFlash", $con);
$inretbiao = mysql_query($strsqlBiao);
if($inretbiao){echo "创建了一个文章表成功!<br>";}else{echo "创建表出现错误,请检查。<br>";}
- 建好了表和库就有插入数据记录,还是用php来插入数据,目的是检查数据的正确性,有时出现中文乱码现象好及时处理。
- 先做一张表单见图;

- 插入数据表的php代码;
- if(($_POST['button2'] == '提交')&&($_POST['biaoti'] != "")){
require_once('connfig.php');
// 字段名有: id feiLei biaoTi neiRong yongHu yuedu laiYuan fBriqi
// 编号 分类 标题 内容 用户 阅读数 来源地 发表日期
$a1 = $_POST['fenLei'];
$a2 = $_POST['biaoti'];
$a3 = $_POST['neirong'];
$a4 = $_POST['yonghu'];
$a5 = $_POST['yuedu'];
$a6 = $_POST['laiyuan'];
$a7 = $_POST['fbriqi'];
$sqlRs = "INSERT INTO `wenzhang`(feiLei, biaoTi, neiRong, yongHu, yuedu, laiYuan, fBriqi) VALUES ('$a1', '$a2', '$a3', '$a4', '$a5', '$a6', '$a7');";
$Rs = mysql_query($sqlRs, $con) or die(mysql_error());
}
- 测试插入数据,成功。然后还有做一张是显示表的php文档看看结果。

- require_once('connfig.php');
$query_Rs = "SELECT * FROM wenzhang";
$Rs = mysql_query($query_Rs, $con) or die(mysql_error());
$row_Rs = mysql_fetch_assoc($Rs);
$totalRows_Rs = mysql_num_rows($Rs);
- <?php do { ?>
<tr>
<td height="28" align="center"><?php echo $row_Rs['id']; ?></td>
<td><?php echo $row_Rs['feiLei']; ?></td>
<td><?php echo $row_Rs['biaoTi']; ?></td>
<td align="center"><?php echo $row_Rs['yuedu']; ?></td>
<td align="center"><a href="c_XiugaiBiao.php?xgid=<?php echo $row_Rs['id']; ?>">修改</a> 删除</td>
</tr>
<?php } while ($row_Rs = mysql_fetch_assoc($Rs)); ?>
- 结果出来了。

- 现在应该来做flashcs3的插入数据和显示数据影片。
- flash的界面图片效果图。

- 下面是As3脚本。
- import fl.managers.StyleManager;
- var tf:TextFormat = new TextFormat();///- 设置字符 -
tf.color = 0x000000;// 黑色
tf.size = 12;
tf.font = "Arial Baltic,宋体";
///tf_biaot.bold = true;
StyleManager.setStyle("textFormat",tf);
- ////=====AspVBScript","phpMysql","FlashFlex","FlashAs3游戏","数据库服务器============
fabu.addEventListener(MouseEvent.CLICK, fabuCK);///侦听按钮
function fabuCK(event:MouseEvent) {
//trace("标题的按钮"+ event.currentTarget.name);
var s1:String= fenLei.text;
var s2:String= biaoti.text;
var s3:String= neirong.text;
var s4:String= faburen.text;
var s5:String= laiyuan.text;
//trace (s1);
//--连接PHP的主文件gateway.php解释处理
var gateway_url:String = "http://localhost/amfphp/gateway.php";
var geteway_conn:NetConnection = new NetConnection();
- geteway_conn.connect(gateway_url);
geteway_conn.call("phpFlashXinXi.chaRu", new Responder(onResult, onFault),s1,s2,s3,s4,s5);
- }
function onResult(result:String):void {
//trace("插入信息成功!");
biaoti.text="";
neirong.text="";
faburen.text="";
laiyuan.text="";
tishi.text="★ 插入数据成功!";
}
function onFault(result:String):void {
//trace("出现错误哦。");
tishi.text="插入数据出现错误了!";
}
- 还不要忙去测试,还有php的脚本没有写,在C:\Apache2\htdocs\amfphp\services写脚本文件。
- phpFlashXinXi.php
- //--添加信息--插入记录---
// 字段名有: id feiLei biaoTi neiRong yongHu yuedu laiYuan fBriqi
// 编号 分类 标题 内容 用户 阅读数 来源地 发表日期
class phpFlashXinXi
{
function chaRu($fl,$bt,$nr,$yh,$ly)
{
$aarq = date("Y-m-d");
mysql_pconnect("localhost","root","sa123");
mysql_select_db("phpFlash");
- $sqlRs = "INSERT INTO wenzhang(feiLei, biaoTi, neiRong, yongHu, yuedu, laiYuan, fBriqi) VALUES ('$fl','$bt', '$nr', '$yh', '1', '$ly', '$aarq');";
$Rs = mysql_query($sqlRs);
if($Rs){
return "ok";
}
}
}
现在就可以flash影片测试了,看看结果用前面的php文档来显示,就知道结果是不是插入了数据。
- ----读出数据-----
- 插入数据是很重要的,读出数据更重要。
读出数据要显示在影片的什么地方,有很多的方法。用组件是最简单的,我也是显示在组件里。

- ///读取数据库信息======直接用的按钮在属性实例名写上按钮名加上侦听===
- flashAs3语句
import fl.managers.StyleManager;
- var tf:TextFormat = new TextFormat();///- 设置字符 -
tf.color = 0x000000;// 黑色
tf.size = 12;
tf.font = "Arial Baltic,宋体";
StyleManager.setStyle("textFormat",tf);///-全部组件的字符设置-
- ///读取数据库信息=========
AspVBScript.addEventListener(MouseEvent.CLICK, ddhmcCk);
FlashFlex.addEventListener(MouseEvent.CLICK, ddhmcCk);
phpMysql.addEventListener(MouseEvent.CLICK, ddhmcCk);
FlashAs3游戏.addEventListener(MouseEvent.CLICK, ddhmcCk);
数据库服务器.addEventListener(MouseEvent.CLICK, ddhmcCk);
function ddhmcCk(event:MouseEvent):void {
///trace(event.currentTarget.name);
var ss:String = event.currentTarget.name;
callAmfPHP(ss);
}
//--连接PHP的主文件gateway.php解释处理
var gateway_url:String = "http://localhost/amfphp/gateway.php";
var geteway_conn:NetConnection = new NetConnection();
////调PHP连接的数据库
function callAmfPHP(str:String):void {
geteway_conn.connect(gateway_url);
geteway_conn.call("phpFlashXinXi.xianShiLei", new Responder(onRok, onFerr),str);
}
//正确获得数据方法一onResult是有数据获取成功---onFault没有数据Object
function onRok(resu:Array):void {
///trace(resu[0]["biaoTi"]);
for (var i:int = 0; i<resu.length; i++) {
jiluList.addItem( { label: resu[i]["biaoTi"], data: resu[i]["neiRong"]} );
}
}
function onFerr(resu:Object):void {
trace("amfphp-error");
}
jiluList.addEventListener(Event.CHANGE, Cklist);
- function Cklist(event:Event):void {
neirong.text = event.target.selectedItem.data;
}
///-----登陆框-------
php文档在同上一章的情况一样。加在phpFlashXinXi.php文件里。
- function xianShiLei($LeiMing){
$conn = mysql_pconnect("localhost","root","sa123");
mysql_select_db("phpFlash", $conn);
$chalei = "SELECT * FROM wenzhang WHERE feiLei = '".$LeiMing."' ORDER BY id DESC";
$jieG = mysql_query($chalei, $conn);
$arrjieg = array();
if ($jieG) {
while($data = mysql_fetch_array($jieG, MYSQL_ASSOC))
{
array_push($arrjieg,$data);
}
return $arrjieg;
}else{
return "SQL-error!";
}
}//xianShiLei
- 运行flash。结果;

- 接下来要做的事是发布信息,就是前面的插入记录。那不是谁都可以发文章的,还是常规需要登录才可以操作发文章。
- 做一个登录框,管理名和密码正确进入插入记录。
|
不说是学生不认真,是不是很好记,常犯的错误是做这儿把那儿搞忘了。
推荐学生的基础教程按步骤的做。
有一些细节没有写,是我的学生应该能看懂,课堂上的一大堆我在这里理一理。 |