推荐阅读
PS抠图教程:如何完美抠出明暗不同且杂乱的细发丝
素材图片发丝非常杂乱,高光发丝与背光发丝较多,并且融合在一起,用单一一种方法很难抠出发丝。前期可以直接用通道抠出高光发丝;然后再用其它工具提取出暗部发丝。最终效果原图1、打开原图素材大图,按Ctrl + J 把背景图层复制一层,如下图。2、进入通道面板,来分析一下各通道。红通道高光部分的发丝非常清晰,不过左下角和右下角部分的发丝都是较暗的,并与高光发丝融合起来,用通道很难全部抠出。3、绿通道与红通道比较接近,只是高光发丝有点暗。
路径终极教程
版权声明:(作者赵鹏zhaopeng.net,所在论坛blueidea.com)此教程允许任意转载,允许用于商业印刷,不需经过作者同意,不需支付任何费用。但必须保证教程的完整性,同时注明本版权声明全部内容。 注:路径绘制方法同样适用于Illustrator 首先来简要介绍一下钢笔工具和路径的概念 1 钢笔工具属于矢量绘图工具,其优点是可以勾画平滑的曲线(在缩放或者变形之后仍能保持平滑效果) 2 钢笔工具画出来的矢量图形称为路径,路径是矢量的 3 路径允许是不封闭的开放状,如果把起点与终点重合绘制就可以得到封闭的路径 现在我们来绘制一个简单的路径 如下图在工具栏选择钢笔工具(快捷键P) 并保持钢笔工具的选项如图所示(在工具栏上方) 选择第二种绘图方式(单纯路径),并取消橡皮带功能 然后用钢笔在画面中单击,会看到在击打的点之间有线段相连 保持按住Shift键可以让所绘制的点与上一个点保持45度整数倍夹角(比如零度、90度) 这样可以绘制水平或者是垂直的线段(图中从第5个点开始按下了Shift键) 从上面的简单练习中我们得出两个规律: 1 我们并没有直接绘制线段,而是定义了各个点的位置,软件则在点间连线成型 2 控制线段形态(方向、距离)的,并不是线段本身,而是线段中的各个点的位置 记住两个术语:那些点称为“锚点”(anchor);锚点间的线段称为“片断”(segment)。 刚才我们绘制的那些锚点,由于它们之间的线段都是直线,所以又称为直线型锚点。 现在我们来绘制曲线形锚点 如下图所示般,在起点按下鼠标之后不要松手,向上拖动出一条方向线后放手 然后在第二个锚点拖动出一条向下的方向线,以此类推,画出类似图示的路径 我们看到在绘制出第二个及之后的锚点并拖动方向线时,曲线的形态也随之改变 究竟曲线是怎样生成的,我们又该如何来控制曲线的形态呢? 除了具有直线的方向和距离外,曲线多了一个弯曲度的形态 方向和距离只要改变锚点位置就可以做到,但是弯曲度该如何控制? 如图在工具栏选择“直接选择工具”,注意是下方那个空心的箭头 假设我们刚才绘制的4个锚点分别是ABCD 用“直接选择工具”去点取位于AB之间的片断 会看到刚才我们绘制AB锚点时候定义的方向线 仔细看一下这两个方向线 再这样想象: 一个人要从A点到B点,在A点出发的时候,位于A点的其他人看到他是朝着上偏右的方向走的 而位于B点的人,看到他是朝着下偏右的方向来的 那么综合两地的观测结果。就可以得出这个人行走的路线:必定是一个类似锅盖的上弧形 现在我们选择如图的“转换点工具”,该工具用来修改方向线 然后如下图所示般改变AB锚点上的方向线,将会看到曲线弯曲度的改变 注意方向线末端有一个小圆点,这个圆点称为“手柄”,要点击手柄位置才可以改变方向线 结合刚才所作的比喻,就不难理解了: 1 修改B锚点方向线为下,相当于指定那个人从A点上方出发后,从B点下方进入,那么所走的路程就是一个S形 2 再修改A锚点方向线为下,相当于从A点下方出发,再从B点下方进入,所走的就是一个下弧形的路程 修改后的方向线如下图:
怎样解决DIV层被Flash动画遮盖问题?
就成了,我加完后在IE下问题是解决了,但是FF下好像没有反应,后来才知道IE中和FF加的代码是不一样的,如下: IE浏览器下可用 firefox下可用 关于wmode属性资料: (可选)允许使用 Internet Explorer 4.0 中的透明 Flash 内容、绝对定位和分层显示功能。此标记/属性仅在带有 Flash Player ActiveX 控件的 Windows 中有效。 "Window"在 Web 页上用影片自己的矩形窗口来播放应用程序。"Window"表明此 Flash 应用程序与 HTML 层没有任何交互,并且始终位于最顶层。 "Opaque" 使应用程序隐藏页面上位于它后面的所有内容。 "Transparent"使 HTML 页的背景可以透过应用程序的所有透明部分显示出来,并且可能会降低动画性能。 "Opaque windowless"和"Transparent windowless"都可与 HTML 层交互,从而允许 SWF 文件上方的层遮蔽应用程序。这两种选项之间的差异在于"Transparent"允许透明,因此,如果 SWF 文件的某一部分是透明的,则 SWF 文件下方的 HTML 层可以透过该部分显示出来,而"opaque"则不会显示。
“鱼眼”下的婚纱
关于旅行婚纱 我们主要的服务对象是对自己婚纱照有较为个性的要求客户,同时想去以往不曾到达的地方体验一番,拍摄留念的客人。关于旅行婚纱我们认为更多是拍摄一种状态和情绪,这是最真实自然的感受。所以对于造型,后期要求不会特别固化。反而对于旅行地点的选取有较高要求。喜欢拍摄清新自然的感觉的可以去东南亚海岛、三亚、鼓浪屿等。喜欢拍摄大气苍茫感觉的可以去新疆、内蒙、云南、西藏等。 鱼眼镜头中的世界 这几张作品拍摄于8月的新疆赛里木湖。用鱼眼镜头体现场景的宽阔,同时一些畸变可以产生有趣的效果。从画面中可以看到使用鱼眼镜头拍摄出来的效果非常显著,如果是一般的镜头恐怕很难拍出这样夸张的画面。用鱼眼镜头拍摄时最重要的是考虑如何利用畸变,我的经验是让人物尽量处于画面中部的位置,这样会使主体畸变不那么严重,而周围的背景则会呈现出比较有趣的效果。因为越接近画面边缘的线条,变形就越大,我通常会把地平线安排在画面边缘,就可以极大地夸张它的变形。这种特殊的画面很受新人的追捧。 摒弃流水线式的作业 一边旅行,一边拍摄,成本相对较高。因为摒弃流水线形式,同时去各地旅行拍摄的固有成本很高。但是市场反应不错,很多客户因为看到片子而联系我们,去他们想去的地方拍摄。从今年开始,我们已经拍摄了云南、西藏、新疆、内蒙等地。马上要开发东南亚和欧洲的旅行拍摄。 注:更多请关注摄影教程栏目,三联摄影群:182959594欢迎你的加入
最新发布
关于 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的支持)源文件:点击下载