澳门新葡萄京官网首页 4

澳门新葡萄京官网首页用PHP 快速生成 Flash 动画的方法

Web 2.0 引进了 Rich Internet Application。但 Rich Internet Application
的含义是怎样?平时,它意味着向应用程序中增多具备中度响应工夫的贸易操作。具体来讲,它象征能够立即校订页面中的小构件、Web
表单和告诉,而没有必要从服务器中检索新页面。一种用于创设 Rich Internet
Application的点子就是行使动态 HTML,它是 Ajax、Javascrīpt、层叠样式表和
HTML 的组合。但是 DHTML 并非向 Web
应用程序中加多相互影响操作的惟一方法。另一种关键方法是利用 Adobe Flash
Player,使用它为 Web 站点加多交互作用操作已经有十年的历史。第一版的 Flash
曾是用于创制动漫图片的工具,而新颖版本的 Flash
已经足以托管三个一体化的分界面,可用于调整 Web 服务拜候并利用
ECMAscrīpt来提供全体的本子接济。驾驭 FlashFlash Player 是融为一体到运营Microsoft Windows、Mac OS X 和 linux 的微型机的 Web
浏览器中的三个插件。停止本文完稿时,最新版本的 Flash Player 是
V8。它是足避防费获取的,大大多浏览器都附带安装了此插件。它非常风行并且有所优秀的客户机渗透力
而这种渗透力随着 YouTube 和 Google Video
这类服务的现身获得了增进,那几个服务都施用 Flash 展现摄像流。Flash Player
只是天平的一端。要发挥作用,Flash Player 还要求使用多少个 Flash
动漫。此类动画平日是使用一种 Flash 的开采工具编写翻译的文件,其文件增添名为.swf。但正如您将要本文中看见的那样,还足以采取 Ming
库用差不离与动态创造图片相符的不二诀要来动态创设 .swf 文件,并在 Web
服务器上绘制图形。Ming 库利用由 php 代码创设的靶子和措施在新的 .swf
文件中打造操作代码。您能够通过几种方法中的放肆一种办法来查看 Web
站点中的 .swf 文件。第一种艺术只需导航到 .swf 文件的 UWranglerL。那样做将把 Web
服务器的漫天内容区域替换为 Flash
动漫。此办法便于实行调理,但关键的用法还是将动漫片嵌入到 HTML Web 页面的object 标识中。该 object 标识然后再通过 UWranglerL 援用 SWF 动漫。object
方法的长处在于你能够把动漫放在页面包车型客车随便地点,并可因而 Javascrīpt
代码进行动态调整,就好像管理页面中的任何其余因素同样。清单 1
显示的是二个援用 SWF 动漫的 object 标识的演示。事项清单 1. 嵌入式 Flash 动漫OBJECT classid=clsid:D27CDB6E-AE6D-11cf-96B8-444553540000codebase=#
version=6,0,40,0WIDTH=550 HEIGHT=400PARAM NAME=movie
VALUE=lines.swfEMBED src=lines.swf WIDTH=550
HEIGHT=400TYPE=application/x-shockwave-flashPLUGINSPAGE=那组标志将援用二个名称为lines.swf 的动画片。

选取 Ming 库动态构建 Flash 动漫

Rich Internet Application 是 Web 2.0 中的新风尚词,况且就 Web 2.0
的面目来讲,一个重大构件正是 Adobe Flash。精通如何将 Flash
动漫集成到应用程序中,并采用 Ming 库动态生成 Flash 动漫。

Web 2.0 引入了 Rich Internet Application。但 Rich Internet Application
的含义是怎么着?平日,它象征向应用程序中添加具备莫斯科大学响应技能的贸易操作。具体来说,它意味着能够立刻校正页面中的小零部件、Web
表单和告知,而无需从服务器中检索新页面。

一种用于创设 Rich Internet Application(凯雷德IA)的情势正是接收动态
HTML(Dynamic HTML,DHTML),它是
Ajax、JavaScript、层叠样式表(Cascading Style Sheet,CSS)和 HTML
的重新整合(请参阅
参照他事他说加以侦察资料)。可是DHTML 并非向 Web
应用程序中丰硕相互影响操作的惟一方法。另一种主要艺术是采用 Adobe Flash
Player,使用它为 Web 站点增添交互作用操作已经有十年的历史。

首先版的 Flash 曾是用来创设动漫图片的工具,而风靡版本的 Flash
已经能够托管一个完好无缺的分界面,可用来调整 Web 服务拜谒并运用
ECMAScript(JavaScript 的行业内部版本)来提供整机的脚本援助。

了解 Flash

Flash Player 是难分难解到运行 Microsoft® Windows®、Mac OS X 和 Linux®
的微型机的 Web 浏览器中的七个插件。甘休本文完稿时,最新版本的 Flash
Player 是
V8。它是能够无需付费获得的,大相当多浏览器都附带安装了此插件。它丰硕流行何况有所非凡的顾客机渗透力
—— 而这种渗透力随着 YouTube 和 谷歌 Video
那类服务的产出得到了巩固,那一个劳务都采纳 Flash 展现录像流。

Flash Player 只是天平的单向。要发挥成效,Flash Player 还须要运用一个Flash 动漫。此类动画经常是运用一种 Flash
的开垦工具编写翻译的公文,其文件扩大名为.swf。但正如你就要本文中看到的那么,还能够动用 Ming
库用差不离与动态创立图片相符的方法来动态营造 .swf 文件,并在 Web
服务器上制图图形。Ming 库利用由 PHP 代码营造的靶子和情势在新的 .swf
文件中构建操作代码。

您能够透过二种艺术中的任意一种格局来查看 Web 站点中的 .swf
文件。第一种方法只需导航到 .swf 文件的 UHavalL。那样做将把 Web
服务器的成套内容区域替换为 Flash
动漫。此方式便于举办调治,但首要的用法依旧将动漫片嵌入到 HTML Web 页面的
<object> 标记中。该 <object> 标识然后再经过 U讴歌RDXL 引用 SWF
动漫。<object> 方法的独特之处在于你能够把动漫放在页面包车型地铁轻便地方,并可由此JavaScript 代码进行动态调整,好似管理页面中的任何别的因素同样。

清单 1 突显的是三个引用 SWF 动漫的 <object> 标志的演示。

清单 1. 嵌入式 Flash 动画

              
<OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#
    version=6,0,40,0"
WIDTH="550" HEIGHT="400">
<PARAM NAME="movie" VALUE="lines.swf">
<EMBED src="lines.swf" WIDTH="550" HEIGHT="400"
TYPE="application/x-shockwave-flash"
PLUGINSPAGE="http://www.macromedia.com/go/getflashplayer">
</EMBED>
</OBJECT>

那组标志将引用一个名称叫 lines.swf 的卡通片。内部的 <embed> 标识用于确定保障Flash 动漫能够在装置了插件的各类浏览器中播放。

标识还把 Flash Player 的万丈和宽窄分别钦命为 550 像素和 400
像素。特别值得注意的是,Flash
动画中的图形都以借助矢量的,那意味着当你使用 Flash
命令绘制线条和文书时,那多少个成分都被寄存为坐标而且依据相配展现区域的百分比进行缩放。如你所见,Flash
动漫有和好的坐标种类,您能够依据符合本人的主意使代码尽恐怕整洁。


Ming

正文中提供的应用 Flash 动漫的率先种艺术是选取 Ming 库动态变化它们。Ming
库是一个 PHP 库,当中有一组映射到 SWF
动漫中的数据类型的指标:子图形、图形、文本、位图等等。小编将不研商哪边构建和设置
Ming,因为其操作是一定于阳台的同期并不特别轻松(请参阅
参谋资料)。在本文中,笔者动用了预编写翻译的恢弘
php_ming.dll 库用于 Windows 版本的 PHP。

必得提议的是,Ming 仍居于开荒阶段。甘休本文完稿时,库的本子是
V0.4,何况较老版本中的一些限令在最新版本中不可能使用。小编动用了 V0.4
撰写本文,由此,要运用这段代码,您须求动用那一个本子。

清单 2 呈现了使用 Ming 库完毕的 HelloWorld 示例。

清单 2. Hello.php

              
<?php
$f = new SWFFont( '_sans' );

$t = new SWFTextField();
$t->setFont( $f );
$t->setColor( 0, 0, 0 );
$t->setHeight( 400 );
$t->addString( 'Hello World' );

$m = new SWFMovie();
$m->setDimension( 2500, 800 );
$m->add( $t );

$m->save( 'hello.swf' );
?>

在指令行中运转这段代码将扭转文书 hello.swf。当自个儿在 Web
浏览器中开拓该公文时,见到了图 1 所示的结果。

图 1. 使用 Ming 的 HelloWorld 示例
澳门新葡萄京官网首页 1

回过头来查看这段代码,作者做的第一件事是创办指向一个放到字体(_sans)的指针,然后创设文本字段,设定字体、颜色和分寸,最终为其提供一些文件内容(“Hello
World”)。再接下来制造了一个 SWFMovie
对象并设定其尺寸。最终,向动漫中加多了文件元素并将动漫片保存到文件中。

作为向来构建文件的代替性方法,也得以动用下面包车型大巴代码,使 SWF
动漫像页面那样输出,而没有必要选择 save 方法:

header( 'Content-type: application/x-shockwave-flash' );
$m->output( );

此进度看似于接受 PHP 中的 ImageMagick 库来营造位图。对于具有 Ming
示例,笔者都将运用 save 方法,但您能够依据喜好来筛选是不是使用 save 方法。


让文本动起来

只是将部分文书放入 Flash
动漫中是未曾多概略思的,除非您能让它动起来。由此作者整合了项目清单 第22中学的示例,它总结两段文本:一部分上马一点都不大后来变得进一步大,而另一某个保险静态。

清单 3. Text.php

              
<?php
$f = new SWFFont( '_sans' );

$pt = new SWFTextField();
$pt->setFont( $f );
$pt->setColor( 0, 0, 0 );
$pt->setHeight( 400 );
$pt->addString( '1000' );

$tt = new SWFTextField();
$tt->setFont( $f );
$tt->setColor( 192, 192, 192, 90 );
$tt->setHeight( 350 );
$tt->addString( 'Points' );

$m = new SWFMovie();
$m->setDimension( 2500, 800 );

$pts = $m->add( $pt );
$pts->moveTo( 0, 0 );

$tts = $m->add( $tt );
$tts->moveTo( 1300, 200 );

for( $i = 0; $i < 10; $i++ ) {
 $m->nextframe();
 $pts->scaleTo( 1.0 + ( $i / 10.0 ), 1.0 + ( $i / 10.0 ) );
}

$m->save( 'text.swf' );
?>

在指令行中推行这段代码时,它将扭转 text.swf。在 Web
浏览器中展开该公文时,笔者看来了图 2 所示的图片。

图 2. text.swf 文件
澳门新葡萄京官网首页 2

文本 “1000” 开首时相当的小,大小为 350 个点。然后采纳 scaleTo()
方法使其增大为 750 个点,方法是对动漫对象使用 nextframe() 方法。

要领会其事业规律,要求精通一些 Flash 制作动漫的情势。Flash
中的动画就好像影片中的动漫同样运营:按帧运转。子图形将按帧在动漫框架中移动。一个重大出入是
Flash 不获取每帧的快照。它存款和储蓄子图形对象在每帧的情况。

您可能会当心到,小编有叁个名叫 $pt 的变量,该变量具备文本
“1000”。随后当自身把 $pt 增添到动漫中时,获得了经过 add()
方法重返的名字为 $pts 的新对象。该对象是
SWFDisplayItem,表示子图形的实例。然后作者得以围绕动漫框架的外界逐帧移动实例。那有的混乱,但自身得以具有同不平时候活动的两个版本的
“1000” 文本子图形或 “points” 文本子图形。


回页首

绘制一些图形

接下去要拍卖的是矢量图形。首先仅绘制一条轻松的直线,它从框架的侧边最上端到左边手尾部。

清单 4. Line.php

              
<?php
$m = new SWFMovie();
$m->setDimension( 300, 300 );

$s = new SWFShape();
$s->setLine( 10, 0, 0, 0 );
$s->movePenTo( 10, 10 );
$s->drawLineTo( 290, 290 );
$m->add( $s );

$m->save( 'line.swf' );
?>

在指令行中运营此脚本,然后查看输出的 .swf 文件,效果如图 3 所示。

图 3. 制图轻易的直线
澳门新葡萄京官网首页 3

好的 —— 那丰裕大致,也会有一些令人激动。那么自个儿做了什么样?创造了多个新的
SWFShape
对象,然后向里面增加了一部分思路移动和直线。然后自身将其当做子图形增添到了动漫中。

为了让它变得更有趣,笔者使用了与刚刚文件中采用的一律的帧式动漫。但在本例中,小编用下边所示的代码使那条直线围绕动漫的基本旋转。

清单 5. 旋转直线

              
<?php
$m = new SWFMovie();
$m->setDimension( 300, 300 );

$s = new SWFShape();
$s->setLine( 5, 0, 0, 0 );
$s->movePenTo( -100, -100 );
$s->drawLineTo( 100, 100 );
$ts = $m->add( $s );

$ts->moveTo( 150, 150 );

for( $i = 0; $i < 100; $i++ ) {
 $ts->rotate( 10 );
 $m->nextframe();
}

$m->save( 'rotate.swf' );
?>

在本例中,小编从 -100, -100 到 100, 100
画了一条直线。那将把直线的基本坐落坐标 0,0
处。这样,当本身在打转图形时,直线的为主将产生旋转。

当自家向动漫中增加图形时,将活动重返到框架宗旨的 SWFDisplayItem。然后用
rotate() 方法使它旋转并每旋转七天就增大其框架。


应用图片

文本和诸如直线、圆、弧、曲线和矩形之类的简短矢量图形都以特别佳绩的,但在优质的意况下,您必得能访谈那么些Flash 动漫中的图片。值得庆幸的是,Ming
库令你能够轻便的采纳图片,如下所示。

清单 6. 采纳图片

              
<?php
$img = new SWFBitmap( file_get_contents( 'megan.jpg' ) );

$s = new SWFShape();
$imgf = $s->addFill( $img );
$s->setRightFill( $imgf );
$s->movePenTo( 0, 0 );
$s->drawLineTo( $img->getWidth(), 0 );
$s->drawLineTo( $img->getWidth(), $img->getHeight() );
$s->drawLineTo( 0, $img->getHeight() );
$s->drawLineTo( 0, 0 );

$m = new SWFMovie();
$m->setDimension( $img->getWidth() * 2, $img->getHeight() * 2 );
$is = $m->add( $s );
$is->moveTo( $img->getWidth() / 2, $img->getHeight() / 2 );

for( $i = 0; $i < 10; $i++ )
{ 
$is->skewx( 0.02 );
$is->skewy( -0.03 );
$m->nextframe();
}

$m->save( 'image.swf' );
?>

在指令行中运维此脚本并在浏览器中查阅 image.swf,结果如图 4 所示。

图 4. 调换的图片动漫
澳门新葡萄京官网首页 4

此脚本在起来时读取了地点的 .jpeg 文件(在本例中,是自身孙女 Megan
的肖像)。然后成立二个矩形,并在其间填充图片。在此现在,它在10
帧处使用了位移效果使图片稍稍活动。


继续移动

自己只是触及了 Ming
库可为您提供的操作的外表。在这里边自个儿未有展现交互作用部分,在互相部分您能够将轻巧的脚本与成分连接起来。(不过,假设换来是并行操作,倘让你有三个十一分复杂的
Flash 动漫,则或然要求思量选拔 Flash 开辟工具来构建 Web 应用程序内与 Web
服务对话的 Flash 动漫。)

塑造特别复杂的 Flash 动漫的其余一种选择是接收诸如 Adobe Flex 或 Laszlo之类的制作工具,这三种工具都提供了用于为 Flash 动漫的客商分界面构造的 XML
语法以致二个更轻易地例程,可用于开荒为分界面提供互相操作的 JavaScript。


XML Chart 和 XML Gauge

给本身留给深远影象的八个 Flash SWF 是 XML Chart 和 XML Gauge,可在
maani.us 获得(请参阅
参谋资料)。使用动漫片就足以轻松地为
Web 站点提供动态的原则和图纸,您只需在 PHP 应用程序中创设 XML 页面。

首先步是从站点下载 SWF。然后将其放置到 Web 页面包车型客车 <object> 标志中并将
U昂CoraL 提要求 XML 数据摘要。制作四个 PHP 页面遵照调整所需的格式导出
XML。那几个动漫片的 XML 格式在站点中得到了详实表达而且极其便于创制。


结束语

 

Flash 带给了一种机会,使您可轻便将大气相互操作增加到 Web
应用程序。犹如一些小零部件样式的控件一样,从区区初步,变得尤其流行。XML
Chart 和 XML Gauge 提供了空子让您在投入多量时间精通 Ming、Flex 或 Laszlo从前先品尝使用那一个项目标 Flash 小零件。无论怎么样,值得花时间去探听 Flash
及其职能来扩大 Web 2.0 PHP 应用程序的法力及互相操作。

发表评论

电子邮件地址不会被公开。 必填项已用*标注