推荐阅读

3DMAX实例教程:VRay打造精致乡村风格餐厅
如何体现一个充满加州柔和阳光的空间呢?这次以餐厅这个空间作为主题内容。从最初的平面设定到空间的布光和材质的赋给,成图的后期处理,我们在这里将一一进行体现。最终效果图图00空间概要及说明:这是一套300多平米的别墅,在整体的设计风格上,我采用了美式乡村风格,混搭了一些地中海的元素进去,这套方案没有传统美式的原始粗矿和古朴质感,却传承了一点地中海式的精致。在主题上摒弃了繁琐和奢华,以舒适为导向,以享受为原则,强调“回归自然”,给人一种心灵上的释然以及回归大自然的淳朴的思路,打造一个安宁平静、舒适自然的美妙净土。(图01)图01平面设定和分析:分析平面图,首先我考虑的是这部分空间分为两块,即餐厅和厨房。当然以餐厅为重点。在这里我把厨房做成敞开式厨房,为了让这两个空间的衔接更紧密,功能更齐全,于是又考虑增加了一个吧台,有情调且实用。我们都知道餐厅以用餐为主,那么所有的功能都要以满足这个需求来产生。在家具灯具以及材料的选择上,也是要以美式的感觉进行搭配。比如铜艺的灯具,厚重的家具,本色的棉麻以及有着浓郁自然清新味道的植物。(图02)

身影画中游
视频叠加相信很多喜欢多媒体的朋友都尝试过,今天我们换个玩法,让的照片在视频影片里产生奇妙的“画中游”景观。使用的工具是友立公司的PhotoImpact 7和VideoStudio 6,操作方法也很简单。 制作无背景照片 启动PhotoImpact 7,导入准备好的人像照片。 按下主窗口左侧工具栏上的选取工具,根据照片背景的复杂程度,选择使用“魔术棒”或“贝氏曲线工具”来去除照片背景(如图1)。制作“画中游”影片 启动 VideoStudio 6,新建项目后按下主窗口右侧的文件夹图标,将准备好的视频剪辑导入到素材库中。 打开主菜单“故事板”选项,在素材库里选中导入的影片,将其拖至视频编辑窗口的“视频轨”中(如图3)作为背景影片。可以导入几段视频剪辑与后面的人像图片配合。影片长度可在编辑窗口里激活后任意拖拉调整,以符合整个影片剪辑的需要。 打开主菜单“覆盖”选项,激活视频编辑窗口的“覆盖轨”,打开主窗口右上角的“素材类型”卷展栏,选择“图片”素材库,按下主窗口右侧的文件夹图标,将准备好的无背景人像图片导入到图片素材库中,把它拉至“覆盖轨”里,激活后依前法拖拉调整播放长度,使其与背景影片长度吻合。我们这个实例里使用了两段视频和两个无背景人像,其长度分别是对应的。 导入的人像照片需要进一步调整,才能达到我们预期的效果。激活“覆盖轨”里的人像照片后,按下主窗口左上角的“动画”设置钮,进行各项参数的设置(如图4)。 提示:“运动类型”与刚才设置的人像位置是有密切关系的,如果人像从右侧滑入,我们需将人像位置设置在屏幕左侧,反之亦然,设置时最好将人像的位置移出画面二分之一左右,产生滑出画面的效果。 设置完毕按下主窗口里的预览钮看一看,效果不错,为了锦上添花,再为这段影片加上活动的文字标题,使它更加生动。选中主菜单上的“标题”选项激活文字标题编辑线,在预览窗选取你满意的文字渲染方式后,将其拖至编辑窗里的“标题轨”,在左上角参数栏设置好文字字体、颜色、阴影和动画方式。最后拖拉“标题轨”中文字标题调整播放长度,使其与相配合的背景影片长度一致。 VideoStudio有添加音效的功能,朋友们可根据喜好自行设置添加,在此不再赘述。 影片的保存或导出 我们的作品一切OK了!在预览窗中看到随着背景影片的播放,人像慢慢地滑入画面,又慢慢地滑出,下一个人像紧接着滑入进来,画面上还相应出现了绚丽的动画标题文字,融合成为一段天衣无缝的新视频!下面就把我们的作品保存起来。 选中主窗口“完成”选项,在这里可将它存储为自定义的视频文件,或直接创建刻录成VCD、DVD、SVCD等格式的光盘。 保存完影片后,还可以按下[导出]按钮,将这段影片制作成一张颇有新意的电子贺卡,搭配好贺卡页面,调整好影片大小和位置,生成一个自执行的EXE文件,就可以把它发给朋友一起分享你的快乐了

用Flash 8 AS代码写摄像头拍照功能
因为很久不做 Flash coding 了,所以也就很少关心 Flash 8 的新的 Class,但听大家说过有这个功能。本想从网上找段教程或 code 来做。可是发现国内还没有类似的。就只能自己动手丰衣足食了。 开始做法: 第一步:在库中建立一个视频元件,类型选择:视频(受 ActionScript 控制)。 第二步:将视频元件拖到场景中,并调整尺寸到想要的大小。并起名为“my_video” 第三步:在时间轴中粘入下边的 code。 Testing 发现有问题,拍出来照片只有 160x120 的区域有图像。并且图像变形了。 :eek: 什么地方出了问题呢?@#$%^&* (此处省略2小时 debug 时间……) 最后发现 my_video 复制到场景中调整大小时并不是改变 my_video.width 及 my_video.height 属性,而是改变 my_video._width 及 my_video._height 属性。原有视频元件的尺寸只有 160x120 。这就相当于将 my_video 作了形变。而 BitmapData.draw() 是不会考虑源元件的形变的。用官方的说法是: QUOTE: 源 MovieClip 对象不对此调用使用其任何舞台中转换。该源 MovieClip 对象会被视为存在于库或文件中,没有矩阵转换、没有颜色转换,也没有混合模式。如果您希望通过使用影片剪辑自身的 transform 属性来绘制影片剪辑,则可以使用它的 Transform 对象来传递各种 transformation 属性。

摄影教程:走近你的被摄者
和模特出外约拍,作品却都僵硬死板如木头?拍出来没有情绪,没有感觉? 也许只是你与你的模特还不够接近…… 本文将展示一位摄影师的拍摄心得,与你分享走近被摄者内心的要领~。 再走近一点就好 Robert Capa 说过“如果你的照片没有拍得很棒,那代表你还可以走得更近去拍摄”(If your photographs aren’t good enough, you’re not close enough)。 如果套用在人像摄影上,所谓的“没有走得更近”当然不是在说你跟 Model 的拍摄距离,也并不是叫你每张照片都跑到 Model 面前去拍大头特写,或是用百微去拍摄眼睫毛才叫做有 feel。其实我个人认为照片没有拍好,那是因为很多时候拍摄者并没有“走近”被摄者的“真实性格”和“内心世界”。在作品上,如果只流于“浅”景深、可爱十式或纯粹摄影技巧表现的话,作品难免缺少了深层次的演译,主题亦会变得空洞。 这照片有爱 这个副标题,是有一次跟我的*好友藤原克也先生讨论一辑人像作品时,他评论了某摄影人的作品,说了一句话:那照片有爱。 藤原克也大哥是*拍摄人像的大师级人物,也是《摄影之道-氛围×构图×主题的光影演绎》一书的作者。当时我在向他请教如何去拍摄感性一点的主题,他就回了我一句:“拍这个主题,要有爱”。 原来*摄影人在发表人像作品时,如果拍得很好的话,其它摄影人都会开玩笑式的留言:“有爱”,意思即为揶揄拍摄这个作品的摄影人,一定在拍摄的过程中爱上了这个模特儿,不然不可能拍出如此扣人心弦的作品。虽然听上去有些无聊,但想深一层,如果没有和 Model 做好沟通和引导,没有全神贯注地去发掘被摄者的表情,的确是很难构成一辑佳作。
最新发布

Authorware 6.0 技巧与实例(3)移动的标题文字
第三节 移动的标题文字 本节要点:显示图标(Display)、移动图标(Motion)、文本输入与格式化、文字和图像的显示模式完成后流程图制作步骤:1、向设计窗口中依次拖入两个显示图标(Display)和一个移动图标(Motion),并命名如上图所示。2、双击“背景图”显示图标(Display),打开程序展示窗口(PResentation Window),这个窗口就是最终用户看到的窗口。同时出现“编辑工具盒”,其中的八个按钮的功能依次为: 选择/移动、文本编辑、画水平垂直或45度直线、画任意直线、画椭圆/圆、画矩形、画圆角矩形、画多边形。 3、单击工具栏上的“输入(Import)”工具,或使用“File”>>“Import...”命令。出现输入图像对话框。选中下方的“Show Preview”可以在右边的窗口中预览选中的图片。选中“Link To File”,将链接到外部文件,如果外部文件修改了,那么在Authorware中看到的也是修改后的图,一般在图片需要多次改动时,选中此项。

Authorware 6.0 技巧与实例(4)给电视片配音
第四节 给电视片配音 很多朋友已经不耐烦了,说前面的内容都知道了,有没有新鲜一点的东西?唉!各位也太着急了,好吧,Authorware 6中的“媒体同步”功能和以前的老版本没有什么太大的联系,那就先来看看吧。本节要点:数字电影图标(Digital Movie) 计算图标(Caculation) 媒体同步(Media Synchronization) 群组图标(Map)本例简介:这是Authorware 6中的新功能。这个功能让我们可以根据声音和视频等基于时间的媒体的时间,同步显示文本、图像或其他事件。 媒体同步,简单地说就是可以在声音或影片图标的右边添加其它图标,来控制声音或影片播放时的事件。 比如你想给一段录像配上解说词,在Authorware 6以前的版本中实现是很困难的,录像和解说总是不能同步。Authorware 6中的媒体同步功能可以很简单地实现这个效果。 本例就是给一段无声音的录像配上解说和字幕。 程序运行时,放映数字电影,到指定位置暂停,播放解说声音,并显示说明文字。完成后流程图制作步骤:1、向设计窗口中拖入一个数字电影图标(Digital Movie),命名为“Movie”。2、双击“Movie”图标,打开其属性窗口(PRoperties),使用左下角的“Import...”输入要配音的无声影片,将“Timing”页签中的Concurrency(同步)属性设为“Concurrent(同步)”,意义即在这个数字电影播放时,同时运行下面的其它图标中的内容。这个属性设置中还有另外一个选项“Wait Until Done(直到结束)”,意义为直到这个电影播放完,再运行下面的图标中的内容。声音图标也有相似的设置。

Authorware 6.0 技巧与实例(6)自定义按钮
第六节 自定义按钮By 李 升 按钮交互是Authorware中常用的交互响应类型,但是仅使用系统提供的按钮未免有点单调。我们可以在Authorware中制作自己的图像按钮。本节要点:自定义按钮本例简介:普通的按钮,在Authorware中一般有四个状态:正常、鼠标移过、鼠标按下和不可使用。 在Authorware中制作自己的图形按钮,就要事先准备好这四种状态的图片,当然也可以只准备一张图片。请看本例的一个按钮的四个状态图。完成后流程图:运行界面:

Authorware 6.0 技巧与实例(9)标准下拉菜单
本节要点:下拉菜单(Pull-Down Menu)交互响应类型本例简介:本例的主要内容制作标准Windows下拉菜单的方法和技巧,以及下拉菜单快捷键的设置。完成后流程图运行界面:制作步骤:1、拖入一个交互图标到流程线上,命名为“File”,向其右边再拖一个群组图标,命名为“Quit”,响应类型设为“下拉菜单(Pull-Down Menu)”,这时“Quit”图标上方会显示一个小图标。这一步作用是显示“File”系统菜单,以便下一步将其擦除。2、向“File”图标下拖入一个擦除图标,命名为“Erase Quit Menu”,并设置擦除对象为上一步建立的“File”菜单。这一步的作用是擦除系统默认显示的“File”菜单,否则会显示“File”菜单,最后效果可能如下图。3、再向流程线上“Erase Quit Menu”图标下方拖入一个交互图标,命名为“文件”,这个图标的名称就是最后要显示的菜单名。4、向“文件”图标右方拖入四个群组图标和一个计算图标,响应类型均设为“下拉菜单”,并分别命名为“新建(&N)”、“打开...(&O)”、“保存(&S)”、“(-”、“退出(&Q)”,这些图标名也就是最后要显示的菜单名。 双击“新建(&N)”图标,打开其属性对话框,设置如下。

Authorware 6.0 技巧与实例(8)选择题框架页型课件
本节要点:框架图标(Framework) 导航图标(Navigate)完成后流程图运行界面:制作步骤:1、向流程线上依次拖入一个显示图标、一个框架图标和一个计算图标。分别命名为“Title”、“Frame”、“Quit”。“Quit”图标的作用是退出程序,其内容为退出函数“Quit(0)”。“Title”图标内容为标题字。2、框架图标实际上是一个固定的模块。打开框架图标,可以看到其中的内容。 框架图标中分两部分,上面是“进入框架(Entry)”部分,这里的图标是在进入框架就被执行的,下面是“退出框架(Exit)”部分,是在上面设置的退出框架后要执行的内容,执行完后,跳出框架页,执行框架图标后面的内容。 框架图标中的的交互方式都是按钮,并且使用了“导航图标(Navigate)”。导航图标可以方便地链接到其它任何一个图标,因此在页式课件中使用得很广泛。关于导航图标的指向,大家可以自己打开一个导航图标研究一下。 这里的“table”图标内容是自己加上去的,内容如下,其它都是自己生成的。系统变量“CurrentPageNum”的值是当前框架页的序号,它的值随当前显示的页不同而变化。还要注意设置“table”图标属性为“更新显示变量(Update Displayed Variables)”,这样才能即时显示。

Authorware 6.0 技巧与实例(11)检测和调整显示器分辨率
本节要点:外部扩展函数(UCD) 变量(Variables)和函数(Functions)的使用 知识对象(Knowledge Object)本例简介:本例流程如下:首先检测用户的显示器分辨率,并保存在变量中。然后判断用户的显示器分辨率和所要求的分辨率是否相同。如果相同,不作改变,直接运行程序;如果不同,提示用户改为要求的分辩率,用户确定后,对显示器分辨率进行调整。如果在运行程序时,用户的显示器分辨率被更改过,退出程序前,将用户显示器的分辨率恢复到原先的值。 本例通过Authorware的一个外部扩展函数alTools.u32来实现,这个扩展函数可以从作者的主页 http://home3.pacific.net.sg/~apudeepa 上得到最新版本。本例带有源程序中也有这个扩展函数的最新版本。 本例的结构设计可以很方便地添入其它内容,可以做为模板供以后使用。完成后流程图制作步骤:1、新建一个程序,命名为“aw6_11”,你也可以在程序完成后保存时命名。2、装载外部扩展函数alTool.u32。如果Functions窗口没有显示出来,选择“Window”>>“Functions”命令,使它显示。在“Category”下拉菜单中选择“test.a5p”,如果你的程序还没有命名保存,那么这时应该选择“[Untitled]”。 3、单击“Load...”按钮,出现“Load function”对话框,选择“alTools.u32”后,单击“打开”按钮确定。 此时出现alTools.u32中所有的函数列表,本例只需选择“alChangeRes”,然后点按“Load”按钮确定。 这时就可以在该程序中使用“alChangeRes”函数了,这个函数的作用就是改变屏幕的分辨率。用法为: alChangeRes(Width,Height,bitpp),如alChangeRes(800,600,16) 就是将显示器设为800×600像素,16位真彩色,这也是现在最流行的设置。4、向流程线上由上到下,依次拖一个计算图标、一个框架图标和一个计算图标。分别命名为“test Screen”、“frame”和“end”。打开“frame”框架图标,将其中所有内容删除,因为本例中不需要其中的导航按钮。5、向“frame”框架图标右侧拖入两个群组图标,分别命名为“next”和“notice”。6、“test Screen”计算图标中代码如下:

Authorware 6.0 技巧与实例(10)Flash 向 Authorware 传递变量
本节要点:在Authorware中插入SWF文件 了解ActiveX本例简介:在Authorware中插入SWF文件很简单,只要使用“Insert”>>“Media”>>“Flash...”就可很方便地插入Flash的SWF文件。要将Flash中的变量传递给Authorware,就要使用“Shockwave Flash Object”ActiveX控件。完成后流程图:运行界面:制作步骤:1、首先制作一个Flash文件,命名为“flash”。在其中有设置变量的Action Script,本例中使用了“fscommand ("variable", "文件"); ”等语句。完成后发布为SWF文件。如果你对Flash不熟悉,请参考相关资料。2、新建一个Authorware文件,使用“Insert”>>“Control”>>“ActiveX...”命令,打开选择ActiveX窗口。找到并选中“Shockwave Flash Object”控件后,单击“OK”确定。这时可见流程线上出现一个“ActiveX”图标,将其命名为“ActiveX”。3、向流程线上拖入一个计算图标和一个交互图标,并分别命名为“Play Flash”和“Dispaly variable”。“Play Flash”中的内容为: SetSPRiteProperty(@"ActiveX", #Movie, FileLocation^"flash.swf") CallSprite(@"ActiveX", #Play) 意思为告诉SWF文件的位置和开始播放flash.swf文件。 “Dispaly variable”中为显示变量的内容。打开其设计窗口,在其中输入“{myvariable}”,意思是显示变量myvariable的值,这个变量将在下面定义。4、向“Dispaly variable”图标的右方拖入一个计算图标,命名为“Get Variable”,并将交互响应类型设为“事件(Event)”。这时在“Get Variable”图标上方出现一个小图标,双击该图标,出现交互属性设置对话框。双击“Sender”选项中的“Icon ActiveX”,使其前面有个叉号,再双击“Event”选项中的“FSCommand”,使其前面也有个叉号,确定刚才的设置。

实例演练Authorware(1)
由于各种原因,Authorware的最新版本姗姗来迟,最近终于升级到版本6.0了。Authorware6主要加强了网络Web发布的功能,充分利用Authorware6工具进行多媒体、交互性、可跟踪的网络学习应用程序的创作,支持不同的系统平台,主要的新功能有一键发布、新的"Commands"菜单、RTF文件格式编辑器和RTF知识对象、增强与改进界面、媒体同步与直接支持MP3、增强Web技术与新的SCO编辑环境等。以下实例是在WIN98环境的Authorware 6版本实践通过的,除了利用6版本的新功能之外,在5.x版本也可以运行,但由于使用的大量的UCD、ActiveX、第三方多媒体控件和知识对象,所有相关的文件必须要完整提供。实例1:即时光标跟随提示。实例说明:一幅美丽的大自然画卷中,雄鹰在天空中翱翔,广阔的草地上一只美洲豹在奔跑着,雄鹰和豹子是2幅动态GIF格式的图片,鼠标停留在大自然背景图时出现跟随光标提示“美丽的大自然”,当光标移动到GIF图片时,分别出现提示“翱翔的雄鹰”和“奔驰的美洲豹”的即时提示,单击2幅GIF图片时分别作具体介绍;光标移动到草原上的屋子时出现离开提示信息,单击鼠标有退出选项,退出时利用“Message Box”知识对象处理确定是否退出。制作步骤:1、为了屏幕美观,程序不需要标题和菜单栏。点击Authorware主菜单下的“Modify”下的“File”里面的“PRoperties”(快捷键Ctrl_Shirt_D),在“Playback”选项那设定显示屏幕为“Variable”(由变量决定屏幕显示大小),点开“Title Bar”和“Menu Bar”。(见图1),这项工作在下面的例子中都采用相同的设定,下面的就不重复了。2、在新流程线上放一计算图标“start”。用它作标志开始执行程序,里面输入“--程序开始”,--是用来注释的。3、继续放一个计算图标“setwindows”。里面输入:ResizeWindow(640,480)ShowMenuBar(OFF)ShowTitleBar(OFF)ShowTaskBar(OFF)系统函数ResizeWindow 是利用width和height参数来调整窗口的大小,它只使用在计算图标中,调整窗口的系统变量包括WindowHeight、 WindowWidth、 WindowTop、WindowLeft。ShowMenuBar(display):ShowMenuBar用来显示或关闭用户的菜单栏,它只使用在计算图标中。 注意:即使用户关闭了菜单栏任务条,用户仍然可以在运行时的任何时候按Alt_F4退出程序。ShowTitleBar(Display):显示窗口标题栏,Display=off是隐藏,Display=on是显示。ShowTaskBar(OFF):关闭系统任务栏。但当Windowsd的任务条设定为“总在最前”会忽略你的这个设定。4、在流程线上放置一显示图标“nature”作为背景图,调整好位置,使它覆盖全部画面。右击这图标,在“Properties”里面的“Display”选项里面设定“Prevent automatic Erase”,防止自动擦除图画,其他设定用省缺值就可以了。5、在主菜单下的“Insert”下的“Media”里面的“Animated Gif...”点出一个图标“eagle”,浏览文件夹,将一幅GIF格式的雄鹰图放进来,设定好位置、大小,(见图2)并右击这图标,在属性的显示方式项设定为“transparent”(透明),这设定和图片本身有一定关系,要看图片的实际来处理。(见图3)6、在“eagle”下放一运动图标“move_eagle”。选择运动的对象是eagle,双击鼠标打开这运动图标,在“Properties”里面的“Motion”选项里面设定“Type”为“Path to end”(指向固定路径的终点),设定运行时间为25秒,“Concurrency”设定为“concurrent”(同时运行下面内容),在“Move When”选项打上“True”(目的是让运动循环进行)(见图4)。所定义的路径一般在背景图的天空部分,可以让雄鹰的部分路径显示在画面外边,一般采用圆滑路径(将关键点点击设定圆点就可以了)。这样下来,雄鹰就可以循环翱翔在天空中了。7、用步骤5同样的方法添加图标“panther”(豹子的GIF图片)。(见图5)8、用步骤6同样的方法添加运动图标“move_panther”(见图6),但在设定豹子的运动路径时有所不同,可以设定4个三角形的标志,做成矩形的环路,目的是使豹子的运动路径在背景图下面的土地上单向循环奔跑,这4个标志都应该放在图画外边。9、在流程线上继续添加一个屋子的GIF格式图片“Home”,属性设定和步骤5的相同,主要将它们设定为“Prevent automatic Erase”(防止自动擦除)和“transparent”(透明)模式就可以了。10、在流程线上放置一个交互图标“Tips”,它右边主要为2类各4个的交互,一类是当光标在屏幕上的提示,另一类是当点击图画时的引申,4个交互分别对应于大自然、鹰、豹、屋。11、在“Tips”交互图标右边放置一个群组图标“nature”,设定交互方式类型为“Hot Object”(热对象),在“Match”匹配为“Cursor on Object”,并将光标变成粗“十”型(见图7),设定“Scope”为“perpetual”(永久)。

实例演练Authorware(2)
实例2、光驱开关控制实例说明:利用第三方屏幕检测模块alTools.u32(由于现在操作的平台都是32位的,所以对16位的UCD不再做说明)检测屏幕分辨率,动态将提示放在系统托盘上方,通过对GIF小图像的变换形象地控制光驱开关,类似用普通编程控制光驱。注意:在使用UCD文件时,要将文件拷贝到Authorware目录下面,通过调用自定义函数来使用,在程序打包发行时,UCD是外置的外部文件,必须将要使用到的UCD文件复制在程序同一目录下运行。操作步骤:1、首先在流程线上放置一计算图标,里面写上以下内容(--后面内容作说明):w:=GetIconPRoperty(@"cdrom", #videowidth)--用来检测GIF图像的宽度 h:=GetIconProperty(@"cdrom", #videoheight)--用于检测GIF图像的高度 ResizeWindow(w,h)--设定显示窗口的大小(和GIF图像一样大小)x:=ScreenWidth--利用alTools.U32的alChangeRes函数里面的ScreenWidth变量计算屏幕的宽度。y:=ScreenHeight--利用alTools.U32的alChangeRes函数里面的ScreenHeight变量计算屏幕的高度 MoveWindow(y-w-20,x-h-10)--定位显示窗口放置位置,+-的数字是用来做小位置调整(见图19)。加载UCD先点击工具条上面的函数小图标,在“Category”属性里面选现在制作的a6p文件,点击“Load...”按钮,选择要装载的UCD,这是会出现相关的UCD的属性,在这程序中选择装载“alTool.u32”的“alChangeRes”函数和“a5wmme.u32”的“CDRetract()”和“CDEject()”函数。虽然alTools.U32里面的alChangeRes函数没有直接使用,但使用了它里面的2个变量ScreenWidth和ScreenHeight,所以运行时要有这UCD 支持。2、选择在主菜单的“Insert”的“Tabuleiro Xtras”里面的“DirectMediaXeras”,在流程线上出现一个插件图形,改名字为“cdrom”,用它作CDROM开关的图形显示,笔者现在使用的这个DirectMediaXeras是2.0版本。在这图标的“Display”属性里面Mode(模式)选择“Transparent”透明效果。3、在图标属性里面点击“Options...”打开“DirectMediaXeras”属性设置。(见图20)在“Digital Video File”里面浏览文件并作选定,DirectMediaXeras本身系统说明支持MPEG, AVI, Quicktime, WAV, AIF, MP2和MIDI文件,如果系统安装了Windows Media Player,你还可以打开ASF、 WMV、 WMA等流媒体格式文件,但实际上它还支持动态GIF、JPG、BMP等一部分的图像文件,笔者就是利用它来打开一幅动态GIF图片的。要打开的GIF图片运行一遍的时间为2900ms(毫秒),其中0-1900ms段为打开部分,1900-2900ms段为关闭CDROM图像段。其他的设定按省缺值。4、在流程线上放置一计算图标“close_gif”,写上:CallSprite(@"cdrom",#videoplaysegment, 0,1900)--设定配合关闭CDROM设定GIF图像的片段程序运行时,先关闭CDROM,这0-1900ms便是关闭的过程。由于关闭是利用第三方的UCD文件A5wmme.u32里面的函数,它不是直接开关CDROM的函数,它关闭有一个短时间过渡,所以在流程线下还加一个计算图标,设定等待1秒。

Authorware实战开发专题--Eval与EvalAssign函数的应用(二)
(二)EvalAssign的简单用法 在上文中我们提到和Eval函数相比,EvalAssign函数的参数参数中可以带赋值号“:=”,具体怎么运用呢?在程序设计中我们往往需要把图标对象动态的改变其移动属性,开始所有的对象都是可移动的,在程序的某个特定时刻,我们需要把对象变为不可移动,如何实现?假设我们所有的对象都命名为“contentX”,其中X为序号,这样的命名将有利于我们程序的控制。我们知道,要“固定”一个对象并不难,在程序中可以这样写:Movable@"contentX":=FALSE 这样就可“固定”序号为X的某个对象,可是如果我们要控制十个,几十个,甚至几百个对象呢,难道我们还用上面的方法一个一个的写程序?用EvalAssign函数可以很简单地解决这个问题,我们只要写上一个程序段就可以实现对所有对象的“固定”,即不可移动属性了:EvalAssign("movable@"content"^number^"":=FALSE") 其中number是变量,通过对number的取值,就可以达到对各个对象的控制,因此运用EvalAssign函数的关键就是归纳或设计出一个能代表全部元素的通用变量表示式,上面所阐述的原理Eval函数也是通用的。为了加深认识,我们来看一个简单应用的实例,下图1.5为其流程图。它实现一个简单功能:只用一个按钮操作就可顺序切换到框架中的各个分支。图1.5 EvalAssign简单用法范例 首先建立如图1.5的流程图,在“Start”计算图标里写入如下公式代码:ResizeWindow(320,180) ----设置演示屏幕大小i:=1 ----给自定义变量I赋值repeat with k:=1 to 5 ----循环设置pic系列显示图标为不可移动EvalAssign("movable@"pic"^k^"":=FALSE")end repeat 根据图1.5的流程图,我们可以知道范例中的关键是把框架中的显示图标命名为一系列有规律的名称:“pic1”、“pic2”….“pic5”,然后利用EvalAssign系统函数编写通用的代码,按钮响应交互(设置为永久交互)的计算分支“Goto Icon”代码如下:if i=5 theni:=0end ifi:=i+1EvalAssign("goto(iconid@"pic"^i^"")") 其中变量“i”为自定义变量,通过它的动态改变而实现循环的切换到框架的各个分支。在程序的开头我们还要对变量“i”赋初值:i:=1,这样可以确保从框架的第一个分支开始进行循环切换。最后运行的效果如下图1.6所示,只要不断的按“Goto Icon”按钮,按钮下面的数字图片,即代表各个分支的图片就会顺序的循环切换。图1.6 范例演示效果 专题总结 通过上面的学习,对Eval和EvalAssign两个系统函数的用法是不是有了更深的认识?有了这两个“兄弟函数”,我们就可以在程序中把大批量相同性质的工作做成循环,从而大大地提高程序的运行效率。