推荐阅读

Photoshop调出古典唯美效果图的外景婚片调色
案列对比图:左为原片,右为效果图1、[注:一直不厌其烦的讲复制背景层,不要在背景层上修改]。复制背景层,生成新的背景层,而后复制背景层生成图层1,修改混合模式为滤色,操作目的:提亮。2、创建“色相/饱和度”调整层,设置参数如下:3、创建“渐变映射”调整层,操作布草如下:

插画艺术网
本实例以造型优美的、抽象的花朵形象和渐变的、绚丽的花朵色彩,来表现插花艺术网页页面的设计主题。该设计效果强烈,点、线、面、色彩和图形的组合运用是构成网页的装饰要素。紫红色的运用为画面增添了浪漫气息。如图11-40所示,为本实例的完成效果。图11-40 本实例完成效果在本实例中所设计的内容与主题相符,体现插花这门艺术的优美与浪漫。协调的处理色彩与其他设计要素之间的相互关系,增强网页的信息和情感传递效果,使人们在浏览的时候产生共鸣。在制作过程中主要采用绘制路径、描边路径来绘制图像,使用“画笔”工具来修饰图像的颜色,更改图像的混合模式使两幅图像叠加起来,能得到更加丰富的图像效果。如图11-41所示,为本实例的制作流程。图11-41 本实例制作流程(1)启动Photoshop,执行“文件”→“新建”命令,参照图11-42所示对打开的“新建”对话框进行设置,创建一个名为“插画艺术网”的新文档。图11-42 设置“新建”对话框(2)单击“图层”调板底部的“创建新图层”按钮,新建“图层 1”,然后使用工具箱中的“矩形选框”工具,参照图11-43所示在视图中绘制一个矩形选区。

CSS兼容IE6,IE7,FIREFOX的一些收集
第一种,是CSS HACK的方法height:20px; /*For Firefox*/*height:25px; /*For IE7 & IE6*/_height:20px; /*For IE6*/注意顺序。这样也属于CSS HACK,不过没有上面这样简洁。#example { color: #333; } /* Moz */* html #example { color: #666; } /* IE6 */*+html #example { color: #999; } /* IE7 */第二种是使用IE专用的条件注释<!--其他浏览器 --><link rel="stylesheet" type="text/css" href="css.css" /><!--[if IE 7]><!-- 适合于IE7 --><link rel="stylesheet" type="text/css" href="ie7.css" /><![endif]--><!--[if lte IE 6]><!-- 适合于IE6及一下 --><link rel="stylesheet" type="text/css" href="ie.css" /><![endif]-->第三种css filter的办法,以下为经典从国外网站翻译过来的。.新建一个css样式如下:#item { width: 200px; height: 200px; background: red;} 新建一个div,并使用前面定义的css的样式:
最新发布

关于 Flash Banner 设计的建议
banner 设计会严重影响广告投放效果,在此建议相关设计人员,在设计FLASH BANNER的时候考虑到以下问题. 1. 尽量减少矢量图形的路径节点数: 矢量图形显示是由计算机通过CPU即时运算得到的,矢量图形通过对节点的位置定义、线的曲度定义、面的填充色的各种属性定义来得到图形,而作为基本元素点的数量直接影响到线、面的数量,也就影响到CPU占用量。 2. 作为装饰的比较复杂的小型文字、logo重复使用时尽量用位图: 这是在下载字节量和CPU占用量间做一个平衡,因为文字本身就是比较复杂的矢量图形,然而很多情况下作为背景和装饰使用时不需要矢量的清晰程度,这时使用位图会很大程度的降低CPU消耗,并把部分消耗转移到显卡的CPU和内存上。只要位图的绝对面积不太大,使用位图和矢量的字节量差异不大。 3. 可以用一小张位图作为颜料填充出一些重复的图形、肌理式的背景: 导入一小张可作四方连续的底图,用于一些特殊效果。 4. 尽量减少动态MC的多层套嵌:多层套嵌会导致CPU对图形、位置、大小等数据不断重复计算,加重CPU负荷 5. 尽量减少多个MC在同一帧内同时运动: 多个MC同时运动会造成CPU峰值高涨,播放速度减慢,可以设计创意时加以避免,把MC的运动比较平均的放于不同帧,避免集中。 6. 避免大面积位图的移动、变形,能在外部软件中变形的,就不要放到 flash 里来做,放大缩小后再导入。 7. 尽量减少MC做大小、旋转的急剧变化: 如果再加上是复杂图形,或是位图,或是动态MC多层套嵌,那必然会引起 CPU使用峰值的急剧升高,图象会忽然变得很慢。 8. 在可能的情况下尽量减小Flash动画在屏幕显示中所占的比例 也可以理解为尽量做的面积小一些,或是包含运动的区域小一点。例如:作遮幅以减少动画面积,较大的底图上作些有创意底小面积动画。只利用flash 作透明的关键动画,使它浮在底图上面,这样即结合底图减少CPU占用,又可以分成flash和图片两个线程下载,加快了下载速度。 9. 减少每秒帧数:在效果损失不大的情况下,尽量减少每秒帧数。 10. 使用FLASH5格式生成文件: 当前有FLASH6播放插件的用户还很少,使用FLASH 6格式播放的文件需要比较长的时间下载插件,会影响速度。 蓝色与国内flashcoder 群补充: 从Flash程序上来说,尽量减少使用循环复制MC,及时删除无用的MC和变量,释放内存,以减少客户端消耗。尽量避免使用复杂的 AS 运算。 避免在首帧一次载入大量的元素,因为在此下载过程中,你的BANNER是一片空白。 一定要设置背景颜色,因为投放网站不会每次为你改HTML的背景色代码。 尽量针对不同尺寸的BANNER单独制作Flash,而非做出一个后,用HTML放大缩小。 要多预备一个动画 GIF 版本。香港网站普遍还要加一个 clickTag 参数作联结(clickTag是variable, 真正连结通过flashhtml, swf?clickTag=http..传入 )。Yahoo 要求只能是 flash5 (制作过程中注意 as 兼容性) 静态文字在导出前统统打散,可以减少文件大小,如果嫌以后修改麻烦,可以先复制一个引导层放原始文字。 所有的图片在外部用图像压缩工具压缩,比如ps,最好是 Fireworks,不要用flash里面压缩。 能用纯色,尽量用纯色,不能用的话也尽量用不透明过渡,尽量少用透明过渡色,少用透明渐变。 特别强调,千万不要在 flashBanner 里加声音,大忌。

Flash中的电影艺术之镜头技巧教程
文章内容摘自《Flash动画与卡通制作创意导航》([美]Ibis Fernanadez著 罗小燕译 清华大学出版社) ,有改动,实例作品为若无说明为qhwa原创。对于许多动画制作者来说,通过Flash获得电影般的效果十分困难,这样他们就不得不满足于非常规的处理方法或者静态画面,而这样又影响了他们的制作.只会说话的头十分枯燥,而且有时仅仅画出角色正确的动作和姿态是远远不够的. 电影艺术融化了摄影,舞蹈动作设计和影视编辑技术,其中影视编辑技术对于成功制作卡通动画来说起主导作用.通常,这些电影艺术技巧能让一部作品的质量大大提升,在同类的作品中鹤立鸡群. 接下来,你将看到一些每个卡通制作者都必须了解的重要技巧以及一些最常用的电影摄影技巧(仅节选镜头巧部分),以及如何把他们运用到Flash动画制作中,你可以借此优化动画的效果. 1.摇镜头 当摇镜头时,它在场景中从一个方向移到另一个方向.它可以是从左到右摇,从右到左摇,也可以是从上到下摇,或者从下到上摇. 你不能直接在flash中通过镜头创建这种效果,你需要在舞台中移动场景的元素. qhwa:下面的内容很简单,略过...唯一要注意的是:为了制造最佳的电影效果,距离镜头越近的物体它的移动速度也越快.把背景层设置为外框线模式观看可能会减少一些麻烦 示例: 2.推/拉镜头 推/拉镜头关系到对图像进行大小的缩放.你能对一个物体进行推镜头以观察某个特定的部分,也可以用拉镜头向观众展示全部的景象.对一个物体用推镜头,必须把舞台上的所有元素都以相同的速度放大.用拉镜头,必须缩小影像显示完整的图像. 如果你确实需要用推/拉镜头,把它用在帮助观众观察某一个物体上,比如说观看墙上的一幅画,画中有一个人拿着一把刀子,或者是一栋房子的墙上有一个水果篮的装饰品,篮子里面有一个苹果. 永远不要让推/拉镜头成为一种惯用的镜头,特别是镜头中有许多物体,而且这些物体必须体现景深的感觉.推/拉镜头比较呆板,而且看上去比较做作.他们最好用在要表现某个物体的细节或者和周围的物体对比体现这个物体的大小上.在景深起关键作用时,不应该对人物或物体应用这种镜头.避免对多个物体采用推/拉镜头.使用这种镜头时,如果只用一个符号,而把其他的元素隐藏起来,这样就会让推/拉镜头看起来比较机械,就像一个真正的缩放过程一样.事实上,切换镜头或者推移镜头比推/拉镜头更合适.3.推移镜头 和摄影机调整焦距改变对某个物体的缩放程度不同,推移镜头是把握住摄影机,对某个拍摄的物体来回推移的过程.影片中对某个角色,物体或者布景元素的来回拍摄更适合用推移镜头体现.如果你的物体不是一个呆板的平面,尽量运用推移镜头而不是推/拉镜头体现.用这个镜头更有三维立体的感觉,能给你的动画片带来电影艺术的效果. 在Flash中表现推移镜头,必须对某个片段中的所有元素采取不同速度的动画处理.离镜头越近的物体,它们移动的速度就越快. 4.升降镜头 升降镜头是在摄影机上拍摄的.当升降机升起或降落时,摄影机集中在某一个物体上,或者在升降机运动的同时摇到场景中的另一块区域.这是一个效果惊人的镜头,在flash中也比较难体现,因为这个镜头大部分要依靠你所画的的图像图形.在Flash中表现这个镜头,首先需要创建一个扭曲的背景图片以适合镜头的运动,这样通过镜头观察时显得比较自然.更高级的升降镜头往往伴有镜头的旋转. 这个动画的场景是镜头从几座大厦之间缓缓上升,天空中不时有雪花飘落.时间关系,做得并不是很细致 示例: 5.倾斜镜头 倾斜镜头是摄影机被固定在一个地方,为了观察某一边的情况把摄影机倾斜一个角度,而不是移动摄影机的镜头摄制方法.假设你的角色从一个大厅的一端走到另一端.在flash中倾斜镜头和升降镜头的处理差不多,但是我们需要更极端地绘制背景图像.对于一个倾斜镜头,事实上需要把一个平面的物体进行扭曲,让两端变成平行的. 实例: 6.跟踪镜头 跟踪镜头是镜头锁定在某个文物体上,当这个物体移动时镜头也跟着移动.这个镜头模仿摄像机放置于移动摄影车上然后跟着角色的移动而推动的情景.事实上,这里所用的方法是把被锁定的对象放置于舞台的中心,只是背景从一端移到另一端而已.这种技巧被广泛应用于游戏制作。

JavaScript和Flash的通信
说明: 略作修改,主要是一些很初级的操作; 又很多相似的文章,不过这个很权威下面是一些在Flash和使用javascript的HTML文件直接通信的示例,每个示例都有简略的步骤 本文讨论了3种基本的Flash/javascript通信方式: > javascript 到 Flash的通信----使用Flash播放器的javascript方法 > Flash 到 javascript的通信----使用Flash的fscommand > Flash 到 Flash的通信-----------使用本地连接对象或综合上2种技术 并不是所有的浏览器都很重视脚本.为了和Flash播放器通信,浏览器必须有内置的钩子以便Flash播放器可以'监听'.浏览器必须是下列的几种: > Netscape Navigator 3.0-4.7x, 和 Netscape 6.2或更高 (Windows 95/98/NT/2000/XP 或 MacOS; 允许Java和LiveConnect) >Internet Explorer 3.0 或更高 (仅Windows 95/98/NT/2000/XP; 允许ActiveX) 注意:Macintosh上的Internet Explorer和早期版本的Netscape6不支持这种方法.请查看本文的附加信息 javascript到Flash的通信 这个例子演示了如何使用Flash的method把变量从HTML的input text 发送到该页面中的Flash文件中.HTML input的数据通过Flash的SetVariable方法传送到Flash文件中. 查看示例:示例 下载源文件(17k) 步骤: >Flash中 1.新建一个文件,保存为javascript_to_flash.fla 2.用文字工具在舞台上创建一个文本域 3.选择这个文本域,在属性面板中,从下拉列表中选择动态文本(Dynamic Text),在变量(variable)栏填上"myVar" 注意:最好的习惯是使用Instance,用myVar.text更改myVar的值.为了简单起见和兼容Flash4和Flash5,我们使用的是变量名的形式. 4.保存文件 5.发布HTML文件和SWF文件 >Dreamweaver中 下一步的工作转移到Dreamweaver中了,当然也可以是其他的HTML编辑器 1.打开上一步发布的HTML文件 2.插入生成的SWF文件和OBJECT/EMBED标签 (1) Insert>Media>Flash,并选择这个Flash (2) 切换到代码视图,我们需要修改被选中的<OBJECT>和<EMBED>标签 (3) 在OBJECT标签中,插入id="myFlash" <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0"width=366 height=142 id="myFlash">

旋转的梨花树制作详解
最近网上很流行一个Flash MV――《一树梨花》,看过的朋友对此赞不绝口,尤其是对片头那棵充满诗情画意的梨花树更是叫绝,我们特地邀请思妙动画工作室的韦锋来为大家讲解一下梨花树的制作过程。创作工具:Photoshop6、3DS MAX 5、Flash MX 制作效果图 首先用Photoshop6.0制作梨花树的效果图,以便在应用3D软件制作梨花树360°旋转的时候有个感性的参考。功力未够之时切勿在3D软件里凭空制作,那样既把握不住形,也把握不住神。笔者建议制作梨花树的三视图(前视图,侧视图,俯视图)使3D建模更准确(如图1)。 3D建模 进入3ds max 5,用多边形建模法通过一个立体三角形拉出树干,注意建模时要反复与效果图对照。 基本造型完成后用Meshsmooth功能使树干圆滑,Iterations数值设置为2,Smoothness数值设置为1.0(如图2)。制作树叶 用Pcloud粒子系统制作白色的树叶,并为其赋予Lens Effects的Glow效果。Size数值设置为0.5;intensity数值设置为80;Occlusion数值设置为100;Use Source Colour数值设置为10;树下的落叶也用Pcloud粒子系统制作,颜色调为绿色,同样赋予Glow效果(如图3)。 模拟卡通渲染 为求简化制作,我们利用材质的自发光效果使物体看上去是平面卡通效果,在Standard材质下,选取Blinn,并把Self-Illumination的Colour设置为100,按照效果图去调整Diffuse内颜色,使树干,树叶和落叶的颜色与效果图相匹配。 动画的背景为由上(粉红色)而下(淡黄色)的过渡色形成,我们可以利用Photoshop制作出一张背景图,JPG或BMP格式均可,再通过3ds max 5内Rendering功能设置把背景图导入3ds max 5里面;方法是在Common Parameters卷栏里钩选Use Map,点击下方按钮弹出Material/Map Browser栏,选择Bitmap然后浏览到背景图(如图4)。

简单实用的电影杂点效果
效果如下: 开始制作: 1.在Flash中新建一个文档,将宽和高分别设置为300px和200px 2.将背景色设置为深色[诸如黑色,灰色之类] 3.在左边点击工具栏中的铅笔工具[Pencil Tool] 在工具栏的下方会相应出现铅笔工具的选项,选择第三项[ink]

Flash MX 特色之旅之一
一、General(flash mx的基本属性)来源:http://www.macromedia.com/software/flash/productinfo/features/flash_feature_tour/ 1.灵活性的工作空间 2.层文件夹 3.时间轴上可以进行编辑 4.对象属性面板 5.和其它版本的兼容性更强1-1 Flash MX灵活性的工作空间 Macromedia Flash MX 拥有一个可定制,简单易用的用户界面, 无论对于设计师, 动画制作师还是程序开发员都一样顺手好用。可定制的特性包括有:面板设计、加速键、发布设置。用户界面和Macromadia其它软件工具界面更一致,这将有助于那些使用不止一个macromedia的产品的用户更好的提高效率。1-2Flash MX 层文件夹
Flash MX 特色之旅之二
二、设计师的工具 用一个简单易用的工具就可以很容易地对一个图片对象进行缩放、旋转、倾斜,扭曲,这个新工具会使你在对形状、符号和图片元素进行修改时更富有创造性和灵活性。 试一下用新的自由变形工具点击对象进行缩放、旋转、倾斜,扭曲等操作测试一下 选择多个对象用这个命令可以自动把对象分配在他们各自所在的层里,新的层的名字和所选择的内容相关联。例如:对象是符号、位图或文字,那么新的层也将共享同样的名字2-3 Flash MX 迅速启动模板
Flash MX 特色之旅之三
三、开发者的内核 在ActionScript应用方面,不管是专家模式还是普通模式,其开发环境都有了很大的改善。代码提示、代码颜色标记、搜索、替代和自动格式检查这些功能,无论对于专家还是初学者都大大提高了他们的工作效率。拖拽脚本,查阅参考资料,源代码提供等等, 都使学习ActionScript更轻松。 用增强的资源脚本调试器设定断点,步进代码, 和函数层 使代码更整洁。这种调试器可以在Macromedia Flash MX内部运行,也可以在浏览" class="sitelink">网页浏览器里运行3-3 Flash MX 对象和事件模式

Flash MX 新的闪烁世界(第一天)
在闪客界中没听过 画魔 的人没几个,以下“Flash MX ? 新的闪烁世界”系列教程就出自他之手,他是不是高手,你看看就知道了! 另:他的个人主页正在紧锣密鼓地打造中,不看看是否可惜呢? 点击 访问www.dnvs.netFlash MX ? 新的闪烁世界(第一天) 2002年3月6日的晚上,简直不敢相信自己已经拿到了传说中Macromedia公司说要15日才发布的Flash MX,接着的几个小时内,我相信也绝对不会有想睡觉的感觉……太感动了。 OK,下面我们用最短的时间看看Flash MX直观上到底哪里是传说中巨大的改变。 第一次打开的时候,会弹出一个界面预置对话框(图1),分为面向设计的Designer,普通用户的General和面向编程的Developer,每种界面预置都周到的考虑了用户的要求和习惯,大家可以按照个人要求选择。(图1Flash MX的用户界面可以说是很漂亮,功能性的面板默认状态都会出现在左侧。当然,你不喜欢这样也可以自定义(我就不喜欢),方法是拉住这里 拖放某个面板。可以单独拉出,可以交换位置,更可以重新组合,感觉和搭积木差不多,灵活方便。新的面板排放的也很有讲究,从上之下分别都是按照常用的概率排放,而且最下面提供Answers面板,随时提供Macromedia公司的最新帮助信息,这点是非常好的,前提是如果正常更新的话。 Color Mixer调色板,改进了前代的Mixer,综合了Stroke面板,若是做动画,在上色阶段可以适当的提高效率。在这个面板中,可以直接修改涉及颜色的所有选项,包括制作过渡色和修改/增加自定义颜色。(图2)(图2,RGB颜色拼起来是1024,奇怪:)) 运行Flash MX的速度倒是不慢,但是10分钟后我开始发现我的320M内存已经被吃掉200M,同时运行的程序只有3个IE窗口而已……可见MM公司为了确保稳定而设置了一些Anti死机的环境或者说内核的变化还是很大的。 随手拿起Oval工具画一个圆,我们来看看Timeline有什么文章。首先让我欣慰的是终于加入了层文件夹,终结了那个层满天的时代。而新增加的Accessibility面板是针对残疾人和对作品说明使用的面板,里面可以存储文本和连接。(图3)(图3最后就是Flash MX一直夸耀的Properties Inspector,类似Dreamweaver的属性面板,同样是按Ctrl+F3弹出,默认状态是场景的属性,而当选中物体或部件的时候,会显示当前所选的物体/部件的所有属性,在做Components时尤为方便。(如图4)(图4)大概了解了Flash MX之后,下面我通过实例的方式综述其他的一些操作上的变化。 在场景中用Rectangle工具画一个方形,然后是用Tools中新增加的Free Transfom Tool 来修改这个方形,这个工具主要有两个选项:Distort和Envelope,即变形和拉膜,Distort主要用于硬处理,可以修改中心点,但一般不改变对象的具体画面;而Envelope多用于修边和动画制作,属于软处理。(图5)(图5) 接下来,选中第一个方形,并按F8转换为标号。这里面的功能增强了许多,Registration是调整MovieClip内的相对位置,点击Advanced后,会发现原来的Linkage也被整合进来,这就说明我们在今后的制作中,可以动态读如内外部MovieClip了,真是很方便呢。不过在Linkage后的MovieClip还会像Flash 5中一样导致整个影片的编译速度减慢,经常发生Loader不出现的情况,希望有待优化。(图6)(图6,哇怎么都是图啊,答:没办法,谁让它是新东西呢。)下面做Action部分,由于我比较喜欢音乐,所以我们就从Sound对象开始好了。 Flash MX针对Sound对象的修改不是让我很满意,因为没有增加可以获取波长的方法,我想是因为获取波长的时候CPU消耗较大的原因导致;还增加了几个运行状态只读属性,也没多大用途;不过onSoundComplete事件的增加,说明真正的循环音乐已经可以实现。首先按Ctrl+R随便导入一个mp3音乐,然后按Ctrl+L打开库,还是找原来Flash5中Linkage的位置,打开后还是发现有点变化的,不过更为简洁明了,for Actionscript即是当前影片程序使用,第二个,是运行状态时动态读入。把导入的mp3的Linkage ID取名sound1。(图7)(图7) OK,刚编辑的当前层命名为“Mc”,新增加一层,命名“AS”。 在AS这层中,按新的Action快捷键“F2”弹出Action面板,按Flash 5的传统方法应该是这样的:mxSnd=new Sound();mxSnd.attachSound("sound1");mxSnd.start(); 这样,按Ctrl+Enter测试后如果正常的话,会听到音乐。 好,确保正常后,我们可以尝试一下新的Sound方法事件,我也顺便升级了我的函数库中的Sound.atcPlay(),请看下面的无限循环播放音乐的例子:// from Demon.S function libSound.prototype.atcPLay=function(id,loop){this.attachSound(id);this.start();if(loop)this.onSoundComplete=this.start};mxSnd=new Sound();mxSnd.atcPlay("sound1",true);onSoundComplete事件发生在声音结束时,这时,只要把start方法作为处理函数即可实现无限循环。Sound.position()和Sound.duration()都是只读属性,前者是获取当前播放的毫秒数,后者则是时间总毫秒长度,加入下面的Action可以帮助你理解:trace(mxSnd.duration);trace(mxSnd.position);Sound.onload()事件则多用于读取声音的时候处理的事件。 可以看到,Sound对象的变化不是让人满意,至少我没满意,期望下个版本加入获取音频流的方法。 第一天是这样的,迷迷糊糊的一个软件终于有了一个开端,做出两个没什么形状的方块伴随着你刚做好的无限循环音乐,稍带成就感。 最后存档,阿……发现,Macromedia考虑到向下兼容,你在存储的时候可以选为Flash 5格式的原文件,当然不可识别的代码会被忽略。 那么……明天见。 相关文件:点击下载篇外话:1,在Action面板中的Deprecate类别中的所有Action是Macromedia公司不推荐使用的语句,估计下个版本这些语句都会被废除,所以这里面的语句是千万不能用的,而不是尽量不用。2,Flash MX的快捷键虽然有一些变化,但是我觉得更加得容易记忆,不过我真心希望Mute Sound也可以有自己的快捷键,这个窘迫的尴尬发生在测试动画时并且声音没有使用Stream方式的时候

Flash MX 新的闪烁世界(第二天)
Flash MX C 新的闪烁世界(第二天) 今天的天气依然是那么的明朗,可是可怜的我还是逃不过加班的命运,难道2002年流行加班?不过不管我多么疲劳,回家后抓起Flash MX后还是兴奋不已…… 第一天我们知道,新的Flash MX在程序员/设计师的界面上作的很好,甚至考虑了他们之前的切换问题。你所要做的只是选择Window-> Panel Sets->xxxx,由于接下来我们的需要,这个xxxx你需要选择Developer(你的分辨率)。 新改进的Flash ActionScript是根据欧洲的ECMA-262编码标准写的,在Flash MX中,已经剔除了Flash 5和以前版本的所有不符合这个标准的语句和代码,剩下的一些有的被优化有的继续保留了,也就是说这些代码从此进入了Macromedia的历史(该公司也表示建议使用标准化的语句)。 新的Action Script有两类:单独功能的语句,例如运算符,变量,属性,方法,流程控制语句等;而另一类既是面向对象和新加入的部件概念,主要分4小类:Core;Movie;Client/Server;Authoring。前三类重新对v5的对象进行了分类,并加入了Stage、System、Microphone,Camera,NetStream,NetConnection,Video等新的对象,Button,TextField,TextFormat等常用的物体现在也可以通过ActionScript来作为基本对象控制;而且v5常用的LoadVars()已经被单独分离出来作为对象并且具有很多常用的方法和错误状态,这是值得兴奋的呢……还有就是配合Authoring 工具使用的Authoring类别,由于Flash MX整合了Generator(又一个不幸进入历史),加之,以后Flash MX的服务器端将由ColdFusion MX担任,可见今后的Flash网络可以配合自身具有一些Generator的一些功能来实现强大的网络体系结构。 今天呢,作为重点部分的既是作为交互作用的LoadMovie()Action和LoadVars对象,我们也通过实例的形势来看看其魅力如何。LoadMovie();LoadMovieNum(); 你还在Flash5中为了动态导入JPG图片而痛苦地把上百个图片转换成Swf格式呢吗?现在请停止那机械劳动吧。升级为Flash MX之后,我们可以尝试下面的例子:首先,用Rectangle工具在场景中适当的位置画一个正方形,接着按F8把它转换为标号,按钮。(图1)(图1)接着,选中这个按钮,并按“F2”打开Action面板,输入下面的AS:on (release) {loadMovieNum("boy.jpg", 1);}注意,源文件和jpg文件需要放入同一目录中,接着图片会在按钮释放的时候被读入场景的第1 level中。(图2)(图2) 测试结果表明Flash MX的LoadMovie宣称支持JPG为实事,OK,继续我们研究它的所有。LoadMovie()和LoadMovieNum()有什么不同?如果你在Flash 5中没有解决这个问题,下面的修改会给你满意的解释修改刚才的按钮Action:on (release) {if (mc == undefined) {_root.createEmptyMovieClip("mc",1);}mc._x=random(300);mc._y=random(300);mc.loadMovie("boy.jpg",1);} 由于懒惰,甚至连多做一个空MovieClip你都不想的时候,那么上面的if语句可以帮你,当场景中不存在mc这个MovieClip的Instance时,引入Flash MX的新MovieClip的方法createEmptyMovieClip()来动态产生一个MovieClip,叫做“mc”并置入Depth1。然后用loadMovie方法读入jpg文件,你可以发现MovieClip的loadMovie方法是没有Num字样的,上面问题的答案自然就可以解释为不读入MovieClip中的Swf/Jpg是loadMovie,反之既是loadMovieNum,上面最后一条语句也可以写为loadMovie(“boy.jpg”,”mc”);。 下面做一个恶作剧,来让按按钮的人不知道如何按自己的按钮。这个时候你可以加入上面已经加入的设置_x/_y属性的Action。结果我们发现一个奇怪的事情,当图片出现在按钮之上的时候,该按钮的事件还是会被响应,而没有达到我们恶作剧的效果,不知道这个属于Bug还是MM早看透了我的恶作剧,不过下次我们可以尝试动态产生两个按钮,看看相应优先级(未来的某一天,我们会讲到Button对象)。(图3)(图3LoadVars对象 新的LoadVars对象看起来更像是一个针对变量处理的XML对象的简化版。它通过传输符合application/x-www-urlform-encoded标准的MIME格式的字符串来和ASP/PHP/JSP服务器交互信息。 LoadVars对象的主要方法有send()、load()、sendAndLoad(),我简单作了一个服务器/客户的交互结构来说明他们的用法。首先,随便做三个控制按钮,上面写着区分他们的文本即可。 接着,我们按F2打开场景的Action面板,输入这段Action:varsobj=new loadvars();tempvars=new loadvars();tempvars.onLoad=function(loaded){if (loaded){trace("loaded");this.saved=1;debugTrace(this)}};aimUrl="http://localhost/";debugTrace = function (what) { for (var elm in what) {trace(elm+"="+what[elm])}}; 首先创建两个loadVars对象,第一个是发送用,第二个是接收用。既然第二个是接收数据用的,当然就要有onLoad事件,这个onLoad事件默认状态不存在,所以创建它并得给它一个处理函数。定义服务器地址aimUrl,最后加入自定义的排错函数察帮助看结果。第一个按钮的Action:(Send)on (release) {varsobj.send(aimUrl+"savevar.php");debugTrace(varsobj);}发送数据是不改变当前状态的,而且是没有任何返回值的,我们可以通过debugTrace来查看结果。第二个按钮的Action:(Load)on (release) {varsobj.load(aimUrl+"putvar.php");debugTrace(varsobj);}loadVars对象读入数据的方式是异步传送,既是如果当前接收到的变量相同则覆盖,不同则接收,互不影响,结果通过debugTrace判断。第三个按钮的Action:(sendAndLoad)on (release) {tempvars.saved=0;varsobj.sendAndLoad(aimUrl+"savevar2.php?saved=1",tempvars);} 和我们熟知的XML对象一样,sendAndLoad对象需要有一个接收的loadVars对象来接收服务器的返回数据。这时,onLoad的作用会体现出来服务器端 我用PHP简单的写了三个对应请求的.php文本,你可以copy下面的文本。putvar.php:< ?echo "a=1&b=2&c=3";? >savevar.php://save function? >savevar2.php:< ?if ($saved==1) echo "saved=2";? >Ok,所需要的一切就绪,那么我们可以看看测试结果:(图4)(图4) 结果没有什么可以新意,还是那句话,既是XML对象的简化版。不过,这样的结构在需要速度的前提并处理不到严谨的文本结构时可以有效利用。可以trace(varsobj.load(false));的返回值居然是true(冷汗……),现在我想我更加确定load的可靠性了…… 对小型的Flash网站来说,新改进的loadMovie可以善加利用,可以有效的减少用户下载时间和你的制作时间;而对于速度要求非常高但没有条件作专业数据库的人呢,loadVars对象应该会让你满意,或者作个什么聊天室留言板都不是什么难事。 唉……天晓得未知的bug有多少,我还未检测sendAndLoad是否还有非安全读入的bug。不过乐观的是Flash MX在扩展性和官方服务上作的很好,相信中后期的Flash MX将是一个完善的开发工具。(目前Macromedia正在做对J2EE和.NET的支持)源文件:点击下载