选择显示字体大小

用 php 动态创建 flash 动画


   macromedia 公司出品的 flash 动画软件现已经成为web页面上非常流行的表现工具,网站开发者利用它引起浏览者的兴趣。 然而不幸的是,仅仅使用actionscript创建动画受到很大的限制,macromedia已经宣布,打算放弃flash generator产品,转而采用支持flash mx的cold fusion,我们的网站将向何处去呢?现在,我们可以利用ming php库来轻松地动态创建flash动画,并且和我们的代码无缝集成。我们可以根据数据库里的数据创建出各种不同效果的动画。
ming 动画库最初出现在php4.05版本里,替代了以前版本的libswf模块。ming 库采用c编写,支持多种语言,下面先看一下如何利用php来制作动画。该库使用简单,和 php 紧密集成,但是,该库仍然处于实验阶段,目前的版本是0.2a,在线的教程、例子、和帮助手册可以让我们方便地学习,ming里的函数组织的很有条理,方便phpflash开发者查找。使用 php和ming库,不但让我们的网站有华丽的装饰,而且可以减少开发flash动画的费用和繁复的劳动。
使用ming库有两种方式,我们可以内嵌到php里(对unix平台而言),也可以把它作为一个php模块来运行,里面的函数支持所有的平台,使用时也无需实例化。如果我们把ming库作为php模块来运行的话,我们必须明确地调用ming库,和使用其他模块一样,然后使用该库里的函数。由于使用前必须先加载模块,与把ming作为内部函数编译的方式相比,要有一点性能的下降。
ming库是完全免费的,我们可以到创作者的网站下载,地址是:http://www.opaque.net/ming/,该网站....php.net/ming。
一旦我们正确安装和配置了ming库,我们可以创建一个php对象,从php里调用ming的函数,通过调用函数和属性,就可以定义我们的动画了。在php模块里有13个对象,提供了flash的一些功能,也有几个命令可以来控制发行时的参数设定。下面就看看如何利用它来创建动画。
使用macromedia flash创建swf格式的动画,我们先创建一些符号,flash有三种类型的符号:图形、动画剪辑、按钮。一旦我们创建了这些符号,我们就可以把它们复制到场景里,每一个拷贝称为一个实例,可以放任意多的实例到我们的场景里。接下来就可以定义这些对象的行为了,也就是定义动作和运动轨迹,也可以定义动画的参数,如尺寸大小和背景颜色,如果需要,可以保存成.swf文件。
利用php的ming库创建flash动画,和macromedia flash一样,必须先创建一些符号,这些符号就是php对象的实例,然后定义这些对象在动画场景里的位置和相互关系,接着定义对象在每一帧里的动作,最后定义动画自己。我们可以直接把swf直接输出到浏览器,也可以保存成swf格式的文件,以备后用。flash的优点就是图形化的用户接口,利用ming库不但可以更加简单的控制对象,而且具有无限的扩展性和再用性。
下面我们就用一个完整的例子来看看如何使用ming库:

<?php

/* 首先创建一个符号,并填充颜色 */
&#36;square = new swfshape();
&#36;sqfill = &#36;square->addfill(0, 0, 0xff);
&#36;square->setrightfill(&#36;sqfill);
&#36;square->movepento(-250,-250);
&#36;square->drawl.neto(250,-250);
&#36;square->drawl.neto(250,250);
&#36;square->drawl.neto(-250,250);
&#36;square->drawl.neto(-250,-250);

/* 在动画剪辑里使用上面的符号,并添加一些脚本 */
&#36;sqclip = new swfsprite();
&#36;i = &#36;sqclip->add(&#36;square);
&#36;i->setdepth(1);
&#36;sqclip->setframes(25);
&#36;sqclip->add(new swfaction(&quot;stop();&quot;));
&#36;sqclip->nextframe();
&#36;sqclip->add(new swfaction(&quot;play();&quot;));
for(&#36;n=0; &#36;n<24; &#36;n++) {
&#36;i->rotate(-15);
&#36;sqclip->nextframe();
}

/* 下面创建按钮 */

function rect(&#36;r, &#36;g, &#36;b) {
&#36;s = new swfshape();
&#36;s->setrightfill(&#36;s->addfill(&#36;r, &#36;g, &#36;b));
&#36;s->drawline(500,0);
&#36;s->drawline(0,500);
&#36;s->drawline(-500,0);
&#36;s->drawline(0,-500);
return &#36;s;
}

&#36;b = new swfbutton();
&#36;b->addshape(rect(0xff, 0, 0), swfbutton_up swfbutton_hit);
&#36;b->addshape(rect(0, 0xff, 0), swfbutton_over);
&#36;b->addshape(rect(0, 0, 0xff), swfbutton_down);
&#36;b->addaction(new swfaction(&quot;settarget(’/box’); gotoandplay(2);&quot;), swfbutton_mousedown);

/* 下面创建动画,并添加上面的符号和按钮 */

&#36;m = new swfmovie();
&#36;m->setdimension(4000,3000);

&#36;i = &#36;m->add(&#36;sqclip);
&#36;i->setdepth(3);
&#36;i->moveto(1650, 400);
&#36;i->setname(&quot;box&quot;);

&#36;i = &#36;m->add(&#36;b);
&#36;i->setdepth(2);
&#36;i->moveto(1400,900);

/* 最后,我们把它输出到浏览器 */

header(’content-type: application/x-shockwave-flash’);
&#36;m->output();
?>


 


关键字 本文所属关键字

相关 与本文相关文章

分类 所有文章关键字导航

源码编程相关

Java   Asp   PHP   .Net   XML   C/C++   CGI   VB   Jsp   J2ee   J2se   J2me   EJB   Servlet   Tomcat   Resin   Struts   Weblogic   Eclipse   ANT   GUI   JMS   Web servise   IDEA   Webphere   Hibernate   Spring   Jboss   Applet   Swing   Socket   Javamail   Perl   Ajax   P2P   安全   模式   框架   测试   开源   游戏

SQL数据库相关

My-SQL   Ms-SQL   Access   DB2   Oracle   Sybase   SQLserver   索引   存储过程   加密   数据库   分页   视图  

手机无线相关

3G   Wap   CDMA   GRPS   GSM   IVR   彩信   短信   无线   增值业务

网页设计制作相关

HTML   CSS   网页配色   网页特效   Javascript   VBscript   Dreamweaver   Frontpage   JS   Web   网站设计

网站建设推广相关

建站经验   网站优化   网站排名   推广   Alexa

操作系统/服务器相关

Windows XP   Windows 2000   Windows 2003   Windows Me   Windows 9.x   Linux   UNIX   注册表   操作系统   服务器   应用服务器

图形图像多媒体相关

Photoshop   Fireworks   Flash   Coreldraw   Illustrator   Freehand   Photoimpact   多媒体   图形图像

标准 网站致力的规范

Valid CSS!

无不良内容,无不良广告,无恶意代码

Valid XHTML 1.0 Transitional

creativecommons