ASP生成动态flash的工具与介绍

2019-07-23 08:30:26来源:爱站网 阅读 ()

新老客户大回馈,云服务器低至5折

  通过ASP和其他程序动态生成HTML页面似乎不再是最新的技术,HTML页面可以使用ASP动态生成,Flash动画也可以使用支持COM自动化的语言动态生成,爱站技术频道小编详解ASP生成动态flash的工具与介绍。
  一、概述?

  笔者应用?Microsoft?Visual?C++?中的?ATL?,将?SWF?SDK?中的高级类封装成了?COM?Objects?,以便使更多的支持COM?Automation的编程语言能够生成?Flash?动画。这些?COM?Objects?被命名为 ?Bukoo?Flash?Objects?。本文不是描述?Bukoo?Flash?Objects?的开发方法和过程,而是介绍如何使用它。?

  二、下载安装?

  Bukoo?Flash?Objects?可以在以下网址下载:?  http://www.delphibbs.com/bukoo ?或者?http://www.geocities.com/yiyisun/bukoo ?。下载的文件为?Swfobjs.zip?,解压后除了文档和范例,?Bukoo?Flash?Objects?就在?swfobjs.dll?中,使用?regsvr32?swfobjs.dll?安装?Bukoo?Flash?Objects?;使用 ?Regsvr32?/Uswfobjs.dll?卸除?Bukoo?Flash?Objects?。?

  三、基本对象及其属性?

  Bukoo?Flash?Objects?总共包括三个?COM?Objects?:?SwfMovie?、?SwfObject?和?SwfAction?。?

  通过创建这三个对象来生成?Flash?动画的过程是:创建?SwfMovie?动画对象;设置动画属性;在帧中创建、插入、删除?SwfObject?元素对象和?SwfAction?动作对象;最后输出?Flash?动画。?  下面是这三个对象应用方法介绍。?

  1?.SwfMovie?动画对象?

  SwfMovie?对象代表即将生成的?Flash?动画,首先需要设置的是动画的大小,?SwfMovie?对象的?SetSize?方法用于设置动画的尺寸。要注意Swf中坐标单位是?twip?,即?1/1440?英寸,或者说是?1/20?像素,例如动画尺寸为?400?x?300?像素,即为 ?8000?x?6000?twip?。必须这样调用:?setsize(8000,?6000)?。?

  setFrameRate (12)?,就是动画每秒放?12?帧,每秒帧速高,动画平滑,但是?Swf文件会变大,影响下载速度,故需要权衡利弊。用?GotoFrame?方法定位到指定帧,然后插入元素或者动作,?SwfMovie?对象自动增加帧数到调用?GotoFrame?方法的最大数目。?

  插入和删除元素的方法是?AddObject?,?RemoveObject?,插入动作的方法是?AddAction?。?

  WriteMovie?方法就是按照指定的文件名生成?sWF?文件。?SwfMovie?的?Content?属性是?VARIANT?类型,也可以用?AsP?中的?response.binarywite?输出到网页中。?

  2?.?SwfObject?元素对象?

  SwfObject?像是一个千面人,创建这个对象以后,可以用其?MakePolygon?方法使其变成多边形;用?MakeRectangle?方法变成矩形;用?MakeOval?方法变成椭圆形;用?MakeCircle?方法变成圆形;用?MakePitcure?方法变成?Jpeg?图像;用?MakeButton?方法变成按钮;用?Makesound?方法变成声音;用?MakeFont?方法变成字体;用?MakeText?方法变成文字等等。sWF?中的文字处理比较特殊,需要先将?TrueType?字体转换成字体对象,再用字体对象生成文字。?

   SwfObject?的?Translate?方法用于平移元素,坐标定位?twip?;?Rotate?方法用于旋转元素;?scale?用于缩放元素。注意旋转和缩放方法的参数单位也比较特殊,称为?Fixed?,简单的换算方法是乘以?65536?,例如旋转?10?度,需要用?10× 65536?,放大?2倍,需要用?2×65536?,依次类推。?  SwfObject?的?setLineWidth?方法用于设置对象边框线的宽度,单位?twip?;?setLineColorA?方法用于设置对象边框线的颜色,它有四个参数,分别代表红、绿、蓝和?Alpha?。Alpha? 参数规定颜色的透明程度。?Alpha=255?不透明,完全覆盖下面的图形;?Alpha=0?全透明,让下面的图形全部透出来,自己就看不见了。?

  SwfObject?的?setNoFill?方法用于设置对象不填充,?setsolidFill?用于设置对象用单色填充,也可以用?alpha? 规定透明程度。?setLinearFill?方法用于设置对象从一个颜色到另外一个颜色逐渐线性过渡,?setLinearFillCenter?方法用于设置颜色线性过渡的中心点。setRadialFill?方法用于设置对象从一个颜色到另外一个颜色放射性逐渐过渡。 ?setRadialFillCenter?方法用于设置颜色放射性过渡的中心点。?  SwfObject?变成按钮的方法的过程稍微复杂些,因为按钮需要四个图形,分别代表按钮普通状态、鼠标划过状态、鼠标下落状态和提示状态的图形。按钮被按动后将激发的动作,需要用?QueueEvent?方法加入动作对象。?

  3?.?SwfAction?动作对象?

  目前,?Bukoo?Flash?Objects?支持五个动作:停止动画、播放动画、跳转到某个帧、导航到?URL?,以及在使某个?html?frame?导航到?URL?。与?SwfObject?一样, ?SwfAction?对象创建后,可以用?MakeActionstop?、?MakeActionPlay?、 ?MakeActionGotoFrame?、?MakeActionGotoURL?以及?MakeActionGotoURLTarget?变成相应的动作。?

  四、?ASP?范例?

  这个?ASP?程序(?sample1.asp?)将动态创建?Flash?动画,包含放射性填充背景、一个自右向左移动的文字和三个扩张的圆形,Swf文件将以二进制流的方式被写入到浏览器中。?sample1.asp源代码。?

  如果需要将动态生成的?Flash?动画插入其他网页,可以用参照?dispswf.asp?来做。?

  两个?ASP?配合使用的?URL?为:?

  http://localhost/swf/dispswf.asp?swf_url=sample1.asp&width=300&height=50 ?

  五、进一步讨论?

  通过?COM?技术,?Bukoo?Flash?Objects?在VC++的SWF?SDK和VC++?以外的其它程序设计语言或者环境之间架设了桥梁,使得利用?ASP?、Delphi?和其他语言能够很方便地生成Flash?动画。?

  但是,SWF?SDK?中包含了许多错误?(bug)?,下载和使用SWF?SDK?的读者需要特别注意,例如,没有将?TrueType?字体转换为 ?Flash?字体的功能、对象的几何变换公式是错误的等等。这些问题在?openswf.org?和?flashkit.com?的讨论组中有很多讨论。笔者在制作?Bukoo?Flash?Objects?时,已经尽量改了一批类似的缺陷和错误。估计难免还有遗漏之处,这将大大影响 ?Bukoo?Flash?Objects?的质量。随着?Flash?5?的正式发布,预计SWF?5?的SDK不久也会推出,希望它能修正其中的 ?bug。届时,笔者将用新的?SDK?重新编译?Bukoo?Flash?Objects?。?

  下一个版本的?Bukoo?Flash?Objects?计划将增加对中文、对嵌入动画?(sprite)?和对变形?(morph)?的支持。?

  欢迎读者对?Bukoo?Flash?Objects?提出建议和批评。


原文链接:https://js.aizhan.com/develop/asp/7700.html
如有疑问请与原作者联系

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:ASP+COM不得不注意的问题

下一篇:ASP中如何实现随机分组程序