X
广告
首页 > 语言 > 关键词  > 正文

使用 PHP 快速生成 Flash 动画

2007-08-09 15:42 · 稿源:IBM

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(RIA)的方法就是使用动态 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 和 Google Video 这类服务的出现得到了提高,这些服务都使用 Flash 显示视频流。

Flash Player 只是天平的一端。要发挥作用,Flash Player 还需要使用一个 Flash 动画。此类动画通常是使用一种 Flash 的开发工具编译的文件,其文件扩展名为 .swf。但正如您将在本文中看到的那样,还可以使用 Ming 库用几乎与动态创建图片相同的方法来动态构建 .swf 文件,并在 Web 服务器上绘制图形。Ming 库利用由 PHP 代码构建的对象和方法在新的 .swf 文件中构建操作代码。

您可以通过两种方法中的任意一种方法来查看 Web 站点中的 .swf 文件。第一种方法只需导航到 .swf 文件的 URL。这样做将把 Web 服务器的整个内容区域替换为 Flash 动画。此方法便于进行调试,但主要的用法还是将动画嵌入到 HTML Web 页面的 <object> 标记中。该 <object> 标记然后再通过 URL 引用 SWF 动画。<object> 方法的优点在于您可以把动画放在页面的任意位置,并可通过JavaScript 代码进行动态控制,就像处理页面中的任何其他元素一样。

清单 1 显示的是一个引用 SWF 动画的 <object> 标记的示例。

清单 1. 嵌入式 Flash 动画

以下为引用的内容:
<OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
codebase="https://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="https://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 示例

回过头来查看这段代码,我做的第一件事是创建指向一个内置字体(_sans)的指针,然后创建文本字段,设定字体、颜色和大小,最后为其提供一些文本内容(“Hello World”)。再接下来创建了一个 SWFMovie 对象并设定其尺寸。最后,向动画中添加了文本元素并将动画保存到文件中。

  • 相关推荐
  • 大家在看
  • 苹果 iPhone 13 Pro DXOMARK 自拍相机评分公布

    日前 DXOMARK 发布了苹果 iPhone13Pro 自拍评测。苹果 iPhone13Pro 的自拍得分为99,在 DXOMARK 自拍排名中名列前茅。

  • Metal Benchmark测试:M1 Max的GPU比M1快3倍以上

    在刚刚发布的2021款MacBook Pro上,苹果推出了性能强劲的M1‌ Max芯片,该芯片配备多达32个GPU核心,这意味着对比上一代M1‌的8核GPU有巨大改进,如今两款芯片在GPU部分的测试数据也出炉。

  • 容联七陌助力百年老字号同仁堂,实现客户服务数字化升级

    同仁堂创建于 1669 年,是全国中医药行业知名老字号,经过 350 多年来的不断创新发展,同仁堂集团目前已经成为拥有工业制药、商业零售、健康养生、医疗养老、国际药业五大板块七个二级集团及多个直属子公司。 为了更好的实现企业增长,数字化转型是同仁堂向前发展过程中不可或缺的一步。数字化技术赋能中药企业进行业务改革和转型,帮助企业提效、增长,同仁堂作为百年品牌数字化转型不是一蹴而就,要从研发、销售、运营、服务等?

  • 双十一最强省钱攻略 李佳琦2021年10月21日爆品清单

    昨天你参加了李佳琦的百亿项目了吗?没抢到好物要返场的同学们,这份清单你一定不能错过。CPB紧致抚纹精华眼霜:付定金 200 元,领 100 元券,到手价 1880 元,送紧致抚纹精华眼霜2ml*10

  • 极目智能完成2 亿元 C1轮融资,加速高级别智能驾驶商业化落地

    中国智能驾驶方案提供商极目智能近日宣布完成 2 亿C1轮融资,由光远资本、国投创合联合领投,中航坪山、方正和生、清大明韵、UMC Capital等知名机构跟投。本轮融资完成后,极目智能将进一步加大在智能驾驶、智能网联、特定场景自动驾驶等方面的研发投入,持续拓展客户群体,加快高级别智能驾驶技术的量产落地。公司前台本轮融资,极目智能引入了国内外优质的投资机构,比如光远资本、国投创合与长江产业基金合作成立的国投长江、隶

  • 网站买卖微信号被判侵权

    某网络科技公司是某网站的经营者。该网站设有微信账号买卖、微信辅助注册、微信辅助解封等交易专区。交易专区里包含大量微信买卖信息。腾讯公司认为,某网络科技公司的行为严重影响了微信平台的正常运营,破坏微信平台的健康生态。故诉请法院判令被告某网络科技公司立即停止不正当竞争行为,在其官方网站首页显著位置发布消除影响的公开声明,同时赔偿经济损失及合理支出210万元。

  • 北银消费金融小课堂 关于金融消费者的八项基本权益

    金融消费者是指为满足个人和家庭需要,购买金融机构金融产品或接受金融服务的自然人。如今已经有不少人变成了金融消费者,那么大家知道金融消费者的八项基本权益是什么吗?北银消费金融小课堂来为大家解答。一、财产安全权金融机构应当依法保障金融消费者在购买金融产品和接受金融服务过程中的财产安全。金融机构应当审慎经营,建立严格的内控措施和科学的技术监控手段,严格区分机构自身资产与客户资产,不得挪用、占用客户资金。

  • 2021第二届快手金剧奖揭晓,《秦爷的小哑巴》斩获年度最佳短剧

    10 月 20 日晚, 2021 第二届快手金剧奖颁奖盛典在重庆举行,包含短剧、演员、剧本、机构等多个维度的 12 个奖项在盛典中揭晓。改编自米读小说的《秦爷的小哑巴》获得了年度最佳短剧和年度最佳改编剧本两大奖项。该剧把白纸黑字变成了有血有肉的剧情,将文字的戏剧张力无限放大。剧情汇集了当下的流行元素,小哑巴和秦家少爷的爱恨纠葛反转不停,撒糖不断,紧凑的节奏让观众欲罢不能。同样跻身今年改编爆款短剧的还有《这个男主有?

  • 快手李彬:短视频平台是VR体验获得增长的最佳途径

    10 月19 日,以“VR让世界更精彩——融合发展 创新应用”为主题的2021 世界VR产业大会云峰会在江西南昌开幕。作为“2021 中国VR50 强企业”,快手研发副总经理李彬在大会主论坛发表《短视频时代的全景创新》主题演讲,分享快手在全景视频领域的技术探索、实践成果与商业化应用,以及平台全景生态建设新布局。全景视频融入短视频平台,打造创作者及内容繁荣生态作为在技术和数据之上构建的内容平台、社交平台,快手近两年在全景视频

  • 快手母婴主播王昕:研究生直播带货破亿,与粉丝共致富

    “研究生”这三个字对于快手母婴头部主播王昕(快手昵称:MiMi童装源头工厂;快手ID:DD5221273)来说,是光环也是偏见。“你研究生毕业当主播,和营业员有什么区别?”当质疑声出现的时候,王昕一时也不知道该如何回答。从 211 大学研究生毕业后,王昕办过培训机构,上过班,但最终选择到快手电商成为一名母婴主播,做起童装生意。瞄准快手电商极具潜力的新消费市场,从零开始跨行业探索电商模式,三年创业期间,王昕吃过惨痛的教

这篇文章对你有价值吗?

  • 热门标签