<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
<title><![CDATA[木子屋 - 三剑客]]></title>
<link>http://www.mzwu.com/</link>
<description><![CDATA[Dnawo&#39;s BLOG]]></description>
<language>zh-cn</language>
<copyright><![CDATA[Copyright 2005 PBlog3 v2.8]]></copyright>
<webMaster><![CDATA[dnawo@sohu.com(Dnawo)]]></webMaster>
<generator>PBlog2 v2.4</generator> 
<image>
	<title>木子屋</title>
	<url>http://www.mzwu.com/images/logos.gif</url>
	<link>http://www.mzwu.com/</link>
	<description>木子屋</description>
</image>

			<item>
			<link>http://www.mzwu.com/article.asp?id=2553</link>
			<title><![CDATA[淘宝旺铺页面自定义模块尺寸]]></title>
			<author>dnawo@sohu.com(dnawo)</author>
			<category><![CDATA[三剑客]]></category>
			<pubDate>Fri,30 Jul 2010 13:40:50 +0800</pubDate>
			<guid>http://www.mzwu.com/default.asp?id=2553</guid>
		<description><![CDATA[<img src="http://www.mzwu.com/pic/201007/095.gif" border="0" alt=""/>]]></description>
		</item>
		
			<item>
			<link>http://www.mzwu.com/article.asp?id=2502</link>
			<title><![CDATA[简单2步，Fireworks 8轻松画箭头]]></title>
			<author>dnawo@sohu.com(dnawo)</author>
			<category><![CDATA[三剑客]]></category>
			<pubDate>Thu,10 Jun 2010 18:46:21 +0800</pubDate>
			<guid>http://www.mzwu.com/default.asp?id=2502</guid>
		<description><![CDATA[有时要用箭头在图片上做些标注，Fireworks 8的箭头工具让人感觉像是鸡肋，QQ的截图工具就好用多了：<br/><br/><img src="http://www.mzwu.com/pic/201006/007.gif" border="0" alt=""/><br/><br/>今天意外发现Fireworks 8也可以画箭头的，只需2步就可以了：<br/><br/>①.用&#34;直线&#34;工具在画布上画条直线；<br/>②.选中直线，依次选择菜单&#34;命令→创意→添加箭头&#34;，设置好样式(17种哦)确定即可；<br/><img src="http://www.mzwu.com/pic/201006/008.gif" border="0" alt=""/><br/><br/>最终效果：<br/><br/><img src="http://www.mzwu.com/pic/201006/009.gif" border="0" alt=""/>]]></description>
		</item>
		
			<item>
			<link>http://www.mzwu.com/article.asp?id=2261</link>
			<title><![CDATA[Fireworks 8快速给gif动画添加背景图]]></title>
			<author>dnawo@sohu.com(dnawo)</author>
			<category><![CDATA[三剑客]]></category>
			<pubDate>Thu,15 Oct 2009 17:08:25 +0800</pubDate>
			<guid>http://www.mzwu.com/default.asp?id=2261</guid>
		<description><![CDATA[使用Fireworks 8的共享层，给gif动画添加背景图变得非常简单。<br/><br/>先用Fireworks打开gif动画：<br/><br/><img src="http://www.mzwu.com/pic/200910/007.gif" border="0" alt=""/><br/><br/>新建一个图层，设置为共享层，将背景图片拉入共享层，调整下位置，背景图就添加好了：<br/><br/><img src="http://www.mzwu.com/pic/200910/008.gif" border="0" alt=""/>]]></description>
		</item>
		
			<item>
			<link>http://www.mzwu.com/article.asp?id=2064</link>
			<title><![CDATA[Fireworks切片两步曲]]></title>
			<author>dnawo@sohu.com(dnawo)</author>
			<category><![CDATA[三剑客]]></category>
			<pubDate>Mon,18 May 2009 22:21:14 +0800</pubDate>
			<guid>http://www.mzwu.com/default.asp?id=2064</guid>
		<description><![CDATA[在Fireworks 8中设计好页面后，接下来要做的就是切片并导出，最终在Dreamweaver 8制作页面。切片通常按两个步骤进行：画辅助线和切片。<br/><br/>1).画辅助线。画辅助线是为了做到精确切片，做这步之前必须想好以后在DW要怎么放置，进行简单的可行性分析，这样切好片后在DW中很快就能做好页面。<br/><br/><img src="http://www.mzwu.com/pic/200905/013.gif" border="0" alt=""/><br/><br/>2).切片。这步比较简单，根据之前的思路在辅助线内直接画切片。<br/><br/><img src="http://www.mzwu.com/pic/200905/014.gif" border="0" alt=""/><br/><br/>好了，导出切片即完成了所有切片工作。如果需要修改设计图，可先在层面板中隐藏网页层(隐藏切片)，再对设计图进行修改，最后再导出切片即可。]]></description>
		</item>
		
			<item>
			<link>http://www.mzwu.com/article.asp?id=2063</link>
			<title><![CDATA[解决用Fireworks切片生成的垃圾代码的方法]]></title>
			<author>dnawo@sohu.com(dnawo)</author>
			<category><![CDATA[三剑客]]></category>
			<pubDate>Mon,18 May 2009 19:46:54 +0800</pubDate>
			<guid>http://www.mzwu.com/default.asp?id=2063</guid>
		<description><![CDATA[使用Fireworks默认设置导出切片时，表格的第一行都是类似：<br/><br/><div class="UBBPanel codePanel"><div class="UBBTitle"><a onClick="copycode(code9010);" style="float:right;cursor: pointer;font-weight: normal; font-style: normal">复制内容到剪贴板</a><img src="http://www.mzwu.com/images/code.gif" style="margin:0px 2px -3px 0px;" alt="程序代码"/> 程序代码</div><div class="UBBContent" id=code9010>&lt;tr&gt;<br/>&#160;&#160;&#160;&#160;&lt;td&gt;&lt;img src=&#34;images/spacer.gif&#34; width=&#34;25&#34; height=&#34;1&#34; border=&#34;0&#34; alt=&#34;&#34; /&gt;&lt;/td&gt;<br/>&#160;&#160;&#160;&#160;&lt;td&gt;&lt;img src=&#34;images/spacer.gif&#34; width=&#34;7&#34; height=&#34;1&#34; border=&#34;0&#34; alt=&#34;&#34; /&gt;&lt;/td&gt;<br/>&#160;&#160;&#160;&#160;&lt;td&gt;&lt;img src=&#34;images/spacer.gif&#34; width=&#34;317&#34; height=&#34;1&#34; border=&#34;0&#34; alt=&#34;&#34; /&gt;&lt;/td&gt;<br/>&#160;&#160;&#160;&#160;&lt;td&gt;&lt;img src=&#34;images/spacer.gif&#34; width=&#34;42&#34; height=&#34;1&#34; border=&#34;0&#34; alt=&#34;&#34; /&gt;&lt;/td&gt;<br/>&#160;&#160;&#160;&#160;&lt;td&gt;&lt;img src=&#34;images/spacer.gif&#34; width=&#34;106&#34; height=&#34;1&#34; border=&#34;0&#34; alt=&#34;&#34; /&gt;&lt;/td&gt;<br/>&#160;&#160;&#160;&#160;&lt;td&gt;&lt;img src=&#34;images/spacer.gif&#34; width=&#34;11&#34; height=&#34;1&#34; border=&#34;0&#34; alt=&#34;&#34; /&gt;&lt;/td&gt;<br/>&#160;&#160;&#160;&#160;&lt;td&gt;&lt;img src=&#34;images/spacer.gif&#34; width=&#34;106&#34; height=&#34;1&#34; border=&#34;0&#34; alt=&#34;&#34; /&gt;&lt;/td&gt;<br/>&#160;&#160;&#160;&#160;&lt;td&gt;&lt;img src=&#34;images/spacer.gif&#34; width=&#34;9&#34; height=&#34;1&#34; border=&#34;0&#34; alt=&#34;&#34; /&gt;&lt;/td&gt;<br/>&#160;&#160;&#160;&#160;&lt;td&gt;&lt;img src=&#34;images/spacer.gif&#34; width=&#34;37&#34; height=&#34;1&#34; border=&#34;0&#34; alt=&#34;&#34; /&gt;&lt;/td&gt;<br/>&#160;&#160;&#160;&#160;&lt;td&gt;&lt;img src=&#34;images/spacer.gif&#34; width=&#34;71&#34; height=&#34;1&#34; border=&#34;0&#34; alt=&#34;&#34; /&gt;&lt;/td&gt;<br/>&#160;&#160;&#160;&#160;&lt;td&gt;&lt;img src=&#34;images/spacer.gif&#34; width=&#34;19&#34; height=&#34;1&#34; border=&#34;0&#34; alt=&#34;&#34; /&gt;&lt;/td&gt;<br/>&#160;&#160;&#160;&#160;&lt;td&gt;&lt;img src=&#34;images/spacer.gif&#34; width=&#34;1&#34; height=&#34;1&#34; border=&#34;0&#34; alt=&#34;&#34; /&gt;&lt;/td&gt;<br/>&lt;/tr&gt;</div></div><br/>去掉这些代码的方法：在导出对话框中点击&#34;选项&#34;按钮，再切换到&#34;表格&#34;选项卡，将间距设置为&#34;嵌套表格，无间隔符&#34;即可。<br/><br/><img src="http://www.mzwu.com/pic/200905/012.gif" border="0" alt=""/>]]></description>
		</item>
		
			<item>
			<link>http://www.mzwu.com/article.asp?id=1950</link>
			<title><![CDATA[懒人自有懒办法——雅酷互动flash as2简易教程第4篇 ]]></title>
			<author>dnawo@sohu.com(dnawo)</author>
			<category><![CDATA[三剑客]]></category>
			<pubDate>Thu,12 Mar 2009 02:52:34 +0800</pubDate>
			<guid>http://www.mzwu.com/default.asp?id=1950</guid>
		<description><![CDATA[据说，这世界是由懒人创造的。因为实在懒得不愿走路，所以，我们发明了汽车，因为实在懒得不愿意提东西，所以我们发明了起重机；因为实在懒得不愿意计算，所以，才有了计算机，实在懒得不愿意写汇编语言，懒人才去发明了高级语言。因为实在懒得去想怎么做缓动，于是才有了……<br/><br/>对了，是flash as2的缓动类。<br/><br/>以前咱们已经学过了如何自己通过onEnterFrame制造缓动效果，想必大家也都练习过。当你正练习得超有成就感，不亦乐乎的时候，一直在旁边崇拜得五体投地的路人甲同学说话了。你这做了些啥啊，费半天劲搞出来的效果也太没水准了吧，给俺做个回弹的效果让洒家欣赏欣赏。虽然你心里直打鼓，但是看见路人甲同学真诚的眼神，还是豪情万丈的上路了。哎，书到用时方恨少啊，谁让俺数学没学好呢，愣是用了九牛二虎之力，也没把这效果做出来。<br/><br/>所以，这时候你就需要……<br/><br/>对了，专门为懒人准备的缓动类。<br/><br/>下面我们来看一下如何利用这个好东西吧。<br/><br/>说到类，有编程基础的人，首先想到的就是面向对象，没有编程基础的人，肯定一头雾水。因为本教程主要面对后者，所以先打一下气，其实，类这东西，虽然这次咱们是第一次隆重提到，但，你实际是一直在跟类打交道。不过你不知道而已。即使现在，您也不需要先了解什么是类，本节的任务就是告诉你怎么使用就行了。<br/><br/>在flash as2.0里边，与缓动相关的有两个类，一个叫tween类，一个叫easing类。有了这两个东西，你就可以作出让路人甲佩服的动画了。<br/><br/>使用这两个类之前，我们必须把它加载进来，在程序的第一行写下这两句话：<br/><br/><div class="UBBPanel codePanel"><div class="UBBTitle"><a onClick="copycode(code85139);" style="float:right;cursor: pointer;font-weight: normal; font-style: normal">复制内容到剪贴板</a><img src="http://www.mzwu.com/images/code.gif" style="margin:0px 2px -3px 0px;" alt="程序代码"/> 程序代码</div><div class="UBBContent" id=code85139>//导入Tween类<br/>import mx.transitions.Tween;<br/>//导入easing类<br/>import mx.transitions.easing.*;</div></div><br/>这样你的程序运行的时候，这两个类就被加载进来。<br/><br/>import 是导入类的意思。<br/><br/>而后面这段mx.transitions.则是这个类存放的路径。告诉flash到哪里可以找到这两个类，因为他们是随flash一起安装到你的电脑中的，所以，这个路径是固定的。<br/><br/>当然，你也可以不写这两句话，但是我建议你写，因为不写的话，你每次提到他们的时候，就必须把他们前面的那一串路经写上。<br/><br/>比如下面这样：<br/><br/><div class="UBBPanel codePanel"><div class="UBBTitle"><a onClick="copycode(code75121);" style="float:right;cursor: pointer;font-weight: normal; font-style: normal">复制内容到剪贴板</a><img src="http://www.mzwu.com/images/code.gif" style="margin:0px 2px -3px 0px;" alt="程序代码"/> 程序代码</div><div class="UBBContent" id=code75121>someTweenID=new mx.transitions.Tween(……)</div></div><br/>但是有了这两句话，你就简单了<br/><br/><div class="UBBPanel codePanel"><div class="UBBTitle"><a onClick="copycode(code31732);" style="float:right;cursor: pointer;font-weight: normal; font-style: normal">复制内容到剪贴板</a><img src="http://www.mzwu.com/images/code.gif" style="margin:0px 2px -3px 0px;" alt="程序代码"/> 程序代码</div><div class="UBBContent" id=code31732>someTweenID= new Tween(……)</div></div><br/>这就像你跟你mm聊天，提到路人甲，你mm肯定很困惑的问，是哪个路人甲啊？所以你必须说，是那个我看着超级不爽的路人甲。但是如果你一开始就告诉MM，我现在想和你聊一下那个让我不爽的路人甲，以后每次提到他的时候，就不用那么麻烦了，直接叫他小甲就行了。<br/><br/>好了，废话又多了。现在咱们先来看看第一个类怎么使用。<br/><br/><div class="UBBPanel quotePanel"><div class="UBBTitle"><img src="http://www.mzwu.com/images/quote.gif" style="margin:0px 2px -3px 0px" alt="引用内容"/> 引用内容</div><div class="UBBContent">someTweenID = new Tween(object, property,function,begin,end,duration,useSeconds)</div></div><br/>先解释一下里边一些参数的意义。<br/><br/>object：是指tween的对象，也就是目标。<br/>property：字符串，也就是说你在用的时候，要把他们用引号引起来，这个是指你要应用效果的属性，比如“_x”、“_y”等。<br/>function：easing缓动类型。（看不懂待会解释）<br/>begin：数值，对象的初始值，也就是缓动一开始的值。<br/>end：数值，缓动结束的值。<br/>duration：缓动时间。<br/>useSeconds：是一个布尔值，决定是用秒还是用帧数表示缓动时间。true表示使用秒，false用帧数。<br/><br/>看到这里你就知道，tween类主要就是控制操作谁、控制什么、多长时间的问题。<br/><br/>至于以何种方式缓动，则是另外一个类的工作：easing<br/><br/>下面我们把easing类拖出来示众。<br/><br/>Back：在一个或两个结束点过渡范围之外的扩展动画，类似于溢出效果<br/>Bounce：在一个或两个结束点过渡范围内加入回弹效果，回弹的多少取决于运动过程的时间，长的时间回弹的次数就相对多<br/>Elastic：发生在一个或两个结束点过渡范围外的弹性效果，弹性的力度不熟运动过程时间的影响<br/>Reguler：在一个或两个结束点上加入减速效果，这个特性可以帮你做出加速后减速的效果<br/>Strong：在一个或两个结束点上加入减速效果，这个效果类似于regular，不同的在于比较明显<br/>None：在开始点到结束点加入匀速运动，没有效果。<br/><br/>如果你看不明白上面的这段说明，也不要着急，继续往下看。<br/><br/>以上提到的是六种效果，而这六种效果，又包含三种过渡方式<br/><br/>easeIn：在过渡的开始产生效果，就是说运动一开始出现这种效果。<br/>easeOut：在过渡的结束产生效果，运动要结束的时候出现这种效果。<br/>easeInOut：在开始和结束均产生效果。<br/><br/>好了，说半天都没用，咱们还是上场试一下吧。如果前面的你都看不懂，上场试一下你就明白了。<br/><br/>在库中建立一个影片剪辑。然后在场景中把它加载进来。<br/><br/><div class="UBBPanel codePanel"><div class="UBBTitle"><a onClick="copycode(code35341);" style="float:right;cursor: pointer;font-weight: normal; font-style: normal">复制内容到剪贴板</a><img src="http://www.mzwu.com/images/code.gif" style="margin:0px 2px -3px 0px;" alt="程序代码"/> 程序代码</div><div class="UBBContent" id=code35341>this.attachMovie(&#34;myMc&#34;, &#34;myMc&#34;, this.getNextHighestDepth(), {_x:20, _y:100});</div></div><br/>看不懂这句话的，回去看本教程第一篇。<br/><br/>然后我们使用tween类来做缓动效果<br/><br/>myBall = new Tween(myMc, &#34;_x&#34;, Elastic.easeOut, 0, 300, 3, true);<br/>现在我们在解释一下上面这段代码，myMc不用说了，因为你是想让myMc产生缓动效果，所以，这个地方是myMc，_x，通过改变x轴的属性值，来实现缓动的效果，当然，出来_x周以外，咱们以前提到的那些影片剪辑的属性，都可以拿来用，你有时间的话，就分别把它们拎出来试一下吧。Elastic.easeOut，这个地方看到了吧？用的就是我们刚才提到的easing类， Elastic缓动效果，easeOut过渡方式，他们两个和起来的意思，就是让myMc在运动结束时产生回弹效果。20，影片剪辑从20开始运动，300，影片剪辑最后停在300的位置上，2，时间是2，true，表示计算时间的单位是秒。<br/><br/>我相信不用我说，你已经测试了我刚才这段代码。现在你可以把咱们刚才提到的各类效果都试一下，就明白它们大概是什么感觉了。<br/><br/>到这儿大家可以看到，这两个类实在是懒得很贴心，首先，它在类中已经清除了循环，所以，你再也不用担心循环清除的问题了。其次，如果你做完了一个回弹效果，可爱的客户看到了以后，却说，这个效果看得我头晕，能给我换一个缓和点的吗？这时候你只需要把Elastic改成Strong或Reguler，另外一种效果就出来了。剩下的时间，你就可以喝喝茶，到雅酷看看教程什么的，实在是居家旅行、泡妞偷懒之必备工具。<br/><br/>先别忙着兴奋，接下来，我们再说两个关于缓动类的很有用的东西，第一个是onMotionFinished，这个告诉程序，如果缓动结束以后，应该做什么。如果你不知道这个函数，但是想做影片剪辑缓动结束以后，弹出提示告诉你结束了，好像是很麻烦的一件事情，至少到目前为止，你的知识面还不足以让你做出来。但是有了onMotionFinished，一切都变得很简单了。<br/><br/>接着上面的代码，继续写：<br/><br/><div class="UBBPanel codePanel"><div class="UBBTitle"><a onClick="copycode(code97956);" style="float:right;cursor: pointer;font-weight: normal; font-style: normal">复制内容到剪贴板</a><img src="http://www.mzwu.com/images/code.gif" style="margin:0px 2px -3px 0px;" alt="程序代码"/> 程序代码</div><div class="UBBContent" id=code97956>myBall.onMotionFinished=function(){<br/>&#160;&#160;&#160;&#160;trace(&#34;缓动结束了！&#34;);<br/>}</div></div><br/>看一看什么效果。对了，这里顺带介绍一下trace的作用，trace的作用就是在测试的时候，在输出面板输出()内的内容，你刚才已经看到了它的作用，以后我们还会经常用它来测试我们的程序。<br/><br/>除了onMotionFinished，还有一个方法，可以使你的运动接着向另外一个方向运行，这个方法叫做continueTo()；它里边有两个参数，第一个参数是下一个目标点，第二个参数是运行时间，相当于tween里边的finish，duration，我们还是来现场试一下，就明白了。<br/><br/>把上面的代码改成<br/><br/><div class="UBBPanel codePanel"><div class="UBBTitle"><a onClick="copycode(code36668);" style="float:right;cursor: pointer;font-weight: normal; font-style: normal">复制内容到剪贴板</a><img src="http://www.mzwu.com/images/code.gif" style="margin:0px 2px -3px 0px;" alt="程序代码"/> 程序代码</div><div class="UBBContent" id=code36668>myBall.onMotionFinished=function()<br/>{<br/>&#160;&#160;&#160;&#160;myBall.continueTo(400, 2);<br/>}</div></div><br/>你可以看到，影片剪辑在300的位置停下以后，又马上开始了新的缓动，移动到400，时间是2秒钟。<br/><br/>有了这样的一种方法，对于制造连续的缓动，你一定就胸有成竹了。<br/><br/>最后，我决定再介绍一个好玩的方法，它的名字叫yoyo();这个方法到底是做什么的，我就不说了，你们可以自己试一下，然后，你就知道它为什么叫这个名字了。<br/><br/>好了，关于缓动，咱们就说到这里吧，基本上有这些东西，一般页面里的缓动效果，对你来说应该都不在话下了。下次，咱们就应该说一下交互的问题了。<br/><br/>交互才是as的真正精髓所在，说白了，要是没有交互，学as程序做什么，关键帧不是都能搞定吗？可爱的路人甲肯定会这么问你的。所以，让我们用交互堵上他的嘴吧。]]></description>
		</item>
		
			<item>
			<link>http://www.mzwu.com/article.asp?id=1949</link>
			<title><![CDATA[让运动更流畅、更优雅、更丰富——雅酷互动flash as2简易教程第3篇]]></title>
			<author>dnawo@sohu.com(dnawo)</author>
			<category><![CDATA[三剑客]]></category>
			<pubDate>Thu,12 Mar 2009 02:41:23 +0800</pubDate>
			<guid>http://www.mzwu.com/default.asp?id=1949</guid>
		<description><![CDATA[现在大家应该都会使用AS程序让影片剪辑动起来了。但是你按照我教你的方法做来做去，一定做得很郁闷，为什么呢？别人的FLASH看起来又流畅，又优雅，又漂亮，动起来那个好看啊，可是我的FLASH为什么动起来直不楞登的，活像机器人呢？算了，算了，别郁闷了，我还是告诉你吧，虽然咱们现在已经学会了用程序使FLASH动起来，但这只是FLASH程序动画得罪最基础的皮毛而已，就像刚刚学会走路的小孩，你还指望他能跳芭蕾？要使动画能够流畅、优雅的动起来，你还得埋头苦学才成。<br/><br/>优秀的FLASH动画中，影片剪辑的移动为什么看起来更流畅呢？因为它更符合生活中的运动规律，说白了两个字——缓冲。想一想汽车是怎么停下来的，速度逐渐减慢，然后停下来。任何事物在改变运动状态的时候，都是逐渐加速或者逐渐减速的，所以，要想你的动画看起来好看，你必须让动画学会缓冲才行。<br/><br/>先从减速运动开始。<br/><br/>何谓匀速运动？何为减速运动？<br/><br/>匀速运动，物理上来讲，就是单位时间内物体位移的值相等。<br/><br/>而在flash里来说的话，就是每一帧里，影片剪辑的某一个属性值变化的幅度相等。拿上一次提到的代码来看：<br/><br/><div class="UBBPanel codePanel"><div class="UBBTitle"><a onClick="copycode(code71916);" style="float:right;cursor: pointer;font-weight: normal; font-style: normal">复制内容到剪贴板</a><img src="http://www.mzwu.com/images/code.gif" style="margin:0px 2px -3px 0px;" alt="程序代码"/> 程序代码</div><div class="UBBContent" id=code71916>myMc._x=0;<br/>onEnterFrame=function()<br/>{<br/>&#160;&#160;&#160;&#160;myMc._x += 1;<br/>}</div></div><br/>可以看到，在每一帧里，影片剪辑的x轴坐标增加了1，如果你觉得他慢吞吞得很不来劲，可以把这个值改大点，比如说改成10，<br/><br/><div class="UBBPanel codePanel"><div class="UBBTitle"><a onClick="copycode(code41345);" style="float:right;cursor: pointer;font-weight: normal; font-style: normal">复制内容到剪贴板</a><img src="http://www.mzwu.com/images/code.gif" style="margin:0px 2px -3px 0px;" alt="程序代码"/> 程序代码</div><div class="UBBContent" id=code41345>myMc._x=0;<br/>onEnterFrame=function()<br/>{<br/>&#160;&#160;&#160;&#160;myMc._x += 10;<br/>}</div></div><br/>运动速度果然快了很多，但是很抱歉，好像还是匀速的。<br/><br/>所以，如果每帧中的数值保持不变，运动一定是匀速的。<br/><br/>那么什么是减速运动呢？<br/><br/>物理上来讲，就是单位时间内物体位移的值逐渐减小，最后变成零，物体就停下来了。<br/><br/>所以，说到这里，冰雪聪明的你一定迫不及待的要举手发言了。<br/><br/>对了，所谓减速运动，在flash里，实现的方法就是让这个值逐渐减小，最后变成零就行了。<br/><br/>到了这里，我们可以隆重推出我们的减速运动的公式了，看仔细了<br/><br/>如果你希望影片剪辑逐渐减速，到x轴坐标为500的时候停下来，那么，这样来写：<br/><br/><div class="UBBPanel codePanel"><div class="UBBTitle"><a onClick="copycode(code6501);" style="float:right;cursor: pointer;font-weight: normal; font-style: normal">复制内容到剪贴板</a><img src="http://www.mzwu.com/images/code.gif" style="margin:0px 2px -3px 0px;" alt="程序代码"/> 程序代码</div><div class="UBBContent" id=code6501>myMc._x=0;<br/>onEnterFrame=function()<br/>{<br/>&#160;&#160;&#160;&#160;myMc._x += (500-myMc._x)/10;<br/>}</div></div><br/>看明白了吗？没看明白得让你的大脑充分转动起来，想一想(500-myMc._x)/10是如何越变越小的。<br/><br/>好了，到这儿你是不是想明白了？<br/><br/>什么？还没有想明白，那就看下面的说明吧，想明白了的人，下面一段可以华丽的掠过了。<br/><br/>(500-myMc._x)/10中，10这个数字是可以随便写的，只要是正整数就行，当然写不同的数值，缓动的效果不一样。好奇的同学可以自己试一下。<br/><br/>我们来把循环分解，看一下这个值是如何逐步变小的。<br/><br/>myMc._x的初始值是1，所以，第一次循环时，括号中的数字是500，500/10，得到50，然后把50赋给myMc._x，也就是说第一帧中，myMc向右侧移动了50个像素，同时在第二次循环开始时，变成了50，这样，括号里(500-myMc._x)的值就变成了450，450/10是45，依次计算下去，你会发现这个值逐渐减小了。所以，mc的运动速度就逐渐减慢了，直到它越来越接近目标点500，这个值就越来越小，最后无限趋近于零，运动就停下来了。<br/><br/>这就是缓动的减速运动原理。<br/><br/>用上这个东西以后，再去看看你的动画，是不是好看多了。<br/><br/>其实加速运动是一样的，这里就不讲了，自己琢磨一下吧。<br/><br/>当然，还有一个事情需要提醒一下，就是上次我们提到的，在onEnterFrame停止的时候，一定要记得清除掉循环，避免一直占用CPU资源。<br/><br/><div class="UBBPanel codePanel"><div class="UBBTitle"><a onClick="copycode(code11033);" style="float:right;cursor: pointer;font-weight: normal; font-style: normal">复制内容到剪贴板</a><img src="http://www.mzwu.com/images/code.gif" style="margin:0px 2px -3px 0px;" alt="程序代码"/> 程序代码</div><div class="UBBContent" id=code11033>myMc._x=0;<br/>onEnterFrame=function()<br/>{<br/>&#160;&#160;&#160;&#160;myMc._x += (500-myMc._x)/10;<br/>&#160;&#160;&#160;&#160;if(Math.abs(500-myMc._x)&lt;0.5){<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;del&#101;te this.onEnterFrame;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;myMc._x=500;<br/>&#160;&#160;&#160;&#160;}<br/>}</div></div><br/>Math.abs是对括号里的数字取绝对值，因为500-myMc._x永远不可能达到零，所以，我们只能取一个极为接近0的数字，比如说0.5，基本上从视觉上已经看不出它的位置上差别。所以，这个时候我们把循环清除掉，并且直接赋值给myMc._x就可以了。<br/><br/>这就是所谓的缓冲运动，当然在实际的flash里还有很多更复杂的运动形式，比如说钟摆式的运动，回弹运动等等，里边的有些运动方式，flash里提供一些现成的类可以方便地实现效果。关于这些缓动类的使用，我们下次再谈。]]></description>
		</item>
		
			<item>
			<link>http://www.mzwu.com/article.asp?id=1948</link>
			<title><![CDATA[影片剪辑动起来-雅酷互动flash简易教程第2篇]]></title>
			<author>dnawo@sohu.com(dnawo)</author>
			<category><![CDATA[三剑客]]></category>
			<pubDate>Thu,12 Mar 2009 02:31:10 +0800</pubDate>
			<guid>http://www.mzwu.com/default.asp?id=1948</guid>
		<description><![CDATA[上次我们学会了如何创建影片剪辑和如何从库中调用影片剪辑。但是flash之所以在动画领域一骑绝尘，靠的可是出类拔萃的动画能力。所以，如何用as实现动画才是问题的关键。现在我们就来探讨一下这个问题。<br/><br/>在探讨之前，首先请确认你理解这个概念：帧。已经了解该概念的同学，这一段可以华丽地掠过了。帧是动画里的一个概念，说简单点，就是电影中的一格。见过电影胶片的人都知道，电影是由一格一格的画面组成的。电影镜头靠在极短的时间里播放这些画面而使镜头连贯成运动的影像，具体说是一秒钟24格。动画里的帧也是这样的概念，而帧频就是指每秒钟播放的整数，flash就是靠这个来实现动画播放的，传统的flash关键帧动画也是靠播放头沿时间轴播放而实现动画的。没见过时间轴的，可以打开flash看一眼。<br/><br/>那么，如果我们使用as，又如何让影片剪辑动起来呢？只要我们也以帧频的速度控制影片剪辑的属性就行了。<br/><br/>下面介绍一些影片剪辑常见的属性。剩下的大家可以去查flash的帮助。（使用帮助是自学软件语言最方便的学习方法，只要按F1就出来了。）<br/><br/>在上一篇中其实我们已经接触到了一些。<br/><br/>比如<br/><br/>myMc._x<br/>myMc._y<br/><br/>其中myMc是你的影片剪辑名称。注意这里的名称不是它在库里作为元件的名称，而是它在场景里的名称，也就是cr&#101;ateEmptyMovieClip中你为它起的那个名字，或者attachMovie中的第二个名字。<br/><br/>比如：<br/><br/>this.cr&#101;ateEmptyMovieClip(&#34;myMc&#34;,1);中的myMc<br/><br/>或者<br/><br/>this.attachMovie(&#34;myMovie&#34;,&#34;myBtn&#34;,1);中的myBtn，注意不是myMovie，不知道myMovie是什么的，回去看第二篇。<br/><br/>当然你也可能不是使用as创建或者加载的影片剪辑，而是直接使用鼠标从库中拖过来的影片剪辑。那ok，用鼠标点中它，在属性面板中为它命名，此处命的名就是你在程序中使用它的时候要用的名称，就像你叫“小张”，小张就过来了。<br/><br/>_x是影片剪辑X轴坐标，_y是影片剪辑的Y轴坐标。<br/><br/><div class="UBBPanel codePanel"><div class="UBBTitle"><a onClick="copycode(code58985);" style="float:right;cursor: pointer;font-weight: normal; font-style: normal">复制内容到剪贴板</a><img src="http://www.mzwu.com/images/code.gif" style="margin:0px 2px -3px 0px;" alt="程序代码"/> 程序代码</div><div class="UBBContent" id=code58985>myMc._x=10;<br/>myMc._y=20;</div></div><br/><br/>这两句代码就是把myMc放到x轴坐标为10，y轴坐标为20的位置。<br/><br/>自己从库中加载一个影片剪辑，把这两个数字改几次，试一下。<br/><br/>其他的属性同理。<br/><br/>_alpha是影片剪辑的透明度。<br/>_width是影片剪辑的宽度。<br/>_height是影片剪辑的高度。<br/>_rotation是影片剪辑的角度。<br/>_xscale是影片剪辑横向上的扩展度。<br/>_yscale是影片剪辑总向上的扩展度。 <br/><br/>没有明白这几个属性什么意思的，也按照上面的方法试一下。 <br/><br/>好了，既然明白了这几个属性的意思，我想动画应该怎么实现，大家估计已经猜出来了，比如我想让myMc从左侧横着飞进场景的话，只需要控制_x，使它从一个负值，变成某一个正值就可以了。比如让他变到100，那它就停在x轴坐标100的位置了。<br/><br/>其他的也同理，比如渐现，渐隐，就是一个透明度的控制，也就是对_alpha的值的控制，变大变小则是对_width、_height、_xscale、_yscale的控制来实现，而旋转，则通过_rotation的控制来实现。<br/><br/>原理知道了，如何实现呢。<br/><br/>通过循环。<br/><br/>只要我们建立一种循环，使他在每次循环的过程中改变myMc的属性值就可以了。比如第一次循环，myMc._x=0;第二次循环，把这个值加1，myMc=1,以此类推，myMc=2，=3，=4，循环下去，而flash的帧频如果是25，也就是每秒钟播放25帧的话，如果我们使这段程序按帧频的频率进行播放的话，那么一秒钟以后，myMc是不是向右移动了25个像素。<br/><br/>原理绕来绕去说半天，其实实现起来很简单，我们只需要找到一个能够使程序以帧频的频率运行的方法就可以了，这个方法就是使用onEnterFrame。多看它几眼，记住它吧，你以后会经常用到它。<br/><br/>看下面的代码：<br/><br/><div class="UBBPanel codePanel"><div class="UBBTitle"><a onClick="copycode(code94234);" style="float:right;cursor: pointer;font-weight: normal; font-style: normal">复制内容到剪贴板</a><img src="http://www.mzwu.com/images/code.gif" style="margin:0px 2px -3px 0px;" alt="程序代码"/> 程序代码</div><div class="UBBContent" id=code94234>myMc._x=0;<br/>onEnterFrame=function(){<br/>&#160;&#160;&#160;&#160;myMc._x= myMc._x+1;<br/>}</div></div><br/>第一句不用解释了，使myMc处于X轴为0的位置上。<br/><br/>下面<br/><br/>onEnterFrame=function(){}<br/><br/>这是flash里常见的一种形式，onEnterFrame简单解释一下，就是使{}里边的程序体，按照帧频的频率来运行。<br/><br/>比如上面的例子中，如果你的flash文件帧频是25，那么，myMc._x=myMc._x+1就在一秒钟内运行了25次。<br/><br/>最后向初学者解释一下myMc._x=myMc._x+1的意思，这句话实际上就是把右侧myMc._x+1的值赋给左侧的myMc._x.。比如第一次循环的时候，myMc._x的值是0，那么0+1以后，再赋给myMc._x，此时myMc._x变成1，循环第二次的时候，1+1再赋给myMc._x，此时myMc._x的值变成2。当然，这句程序还有个更简单的写法：myMc._x++;作用和myMc._x=myMc._x+1的作用是一样的。<br/><br/>那如果myMc._x=myMc._x+2该怎么写？myMc._x+2？错了，正确的简写方法是myMc._x+=2; <br/><br/>好了，下面运行一下上面的程序，看看什么效果，试着把前面提到的影片剪辑的其他属性换掉_x试一下，看看什么效果。<br/><br/>到这里我们基本上使用程序的方式使影片剪辑动起来了，只要多动脑筋，你就可以利用这些制造出丰富多彩的动画效果。<br/><br/>但是，有人可能也发现了问题。就是没有办法让动画停下来。这是因为如果我们不把onEnterFrame清除的话，它会一直以帧频的频率运行下去。这不仅使你的动画停不下来，而且还将一直占用着你的CPU资源。所以，当onEnterFrame的任务完成以后，一定要把它及时地结束。<br/><br/>使用del&#101;te onEnterFrame可以清除正在运行的onEnterFrame。<br/><br/>所以上面的例子，我们可以改成下面这样。<br/><br/><div class="UBBPanel codePanel"><div class="UBBTitle"><a onClick="copycode(code61930);" style="float:right;cursor: pointer;font-weight: normal; font-style: normal">复制内容到剪贴板</a><img src="http://www.mzwu.com/images/code.gif" style="margin:0px 2px -3px 0px;" alt="程序代码"/> 程序代码</div><div class="UBBContent" id=code61930>myMc._x=0;<br/>onEnterFrame=function(){<br/>&#160;&#160;&#160;&#160;myMc._x= myMc._x+1;<br/>&#160;&#160;&#160;&#160;if(myMc._x&gt;=200){<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;del&#101;te this.onEnterFrame;<br/>&#160;&#160;&#160;&#160;}<br/>}</div></div><br/>再次运行试一下，影片剪辑运动到200的位置停下来了。<br/><br/>再次拿其他的属性来试一下吧。今天就说到这里，下次我们来研究一下缓冲效果，以及如何使用as实现更复杂的运动效果。]]></description>
		</item>
		
			<item>
			<link>http://www.mzwu.com/article.asp?id=1947</link>
			<title><![CDATA[玩的就是影片剪辑-雅酷flash as2简易教程第1篇]]></title>
			<author>dnawo@sohu.com(dnawo)</author>
			<category><![CDATA[三剑客]]></category>
			<pubDate>Thu,12 Mar 2009 02:23:04 +0800</pubDate>
			<guid>http://www.mzwu.com/default.asp?id=1947</guid>
		<description><![CDATA[用过flash的人都知道，flash中，有一个很重要的概念：影片剪辑(一般，我们简称为mc)，它几乎是flash一切动画的基础。Flash这东西，一言以蔽之，就是如何让很多影片剪辑在界面里按你想象的运动起来。滑动、变大、变小、旋转、显示、消失……就是这些最基础的运动，构成了flash，甚至是说任何图形界面的软件的最基本的交互和展现形式。在关键祯时代，我们用关键祯来进行这些最基本的事情，在as时代，我们用as来做，如此而已。 <br/><br/>在早期的flash版本里边，我们都知道，按钮司交互，影片剪辑管运动，所以，以前大家做一个flash，思路很简单，我需要一个东西有交互行为，说白了就是我点点点，他动动动，就直接做个按钮，放到库里，再拖到场景里用；我需要一个东西动起来，直接建一个影片建立，放到场景里，再拖到场景里用。在as时代，我们用as来做，首先需要明白的也是这一点。(上面这两段看不懂的同学，请先找一些flash软件使用的最基本教程看一下，至少了解一下库是什么东西，影片剪辑应该如何建立)。<br/><br/><strong>一、用代码建立空的影片剪辑</strong><br/><br/>在flash as里，我们同样可以建立影片剪辑。所以，今天咱们先来说一下如何建立影片剪辑。<br/><br/>打开flash软件，鼠标点中时间轴上的第一祯。然后打开动作面板，在里边输入如下的语句：<br/><br/><div class="UBBPanel codePanel"><div class="UBBTitle"><a onClick="copycode(code28705);" style="float:right;cursor: pointer;font-weight: normal; font-style: normal">复制内容到剪贴板</a><img src="http://www.mzwu.com/images/code.gif" style="margin:0px 2px -3px 0px;" alt="程序代码"/> 程序代码</div><div class="UBBContent" id=code28705>this.cr&#101;ateEmptyMovieClip(&#34;myMc&#34;,1);</div></div><br/>这就在场景里边建立了一个名为myMc的影片剪辑。当然，目前为止，你看不到这个影片剪辑，因为他是空的。<br/><br/>关于上面这句话，有几点我们先解释一下。<br/><br/>this指的是这个影片剪辑的作用域，简单点说，就是我是在这一祯上建立的影片剪辑。<br/><br/>&#34;.&#34;是flash最典型的点语法，说简单点，就是你可以把它理解为&#34;的&#34;或者&#34;下的&#34;或者&#34;属于他的&#34;，高深专业的解释这里暂时就不讲了，只会增加初学者的理解难度。我可以不太负责任的告诉大家，你可以不太规范的认为，flash在表示&#34;的&#34;，&#34;下的&#34;，&#34;属于他的&#34;时候都用&#34;.&#34;来表示。<br/><br/>比如刚才这句，你可以理解为在&#34;this&#34;下面建立空的影片剪辑。<br/><br/>再比如this.myMc._x，你可以理解为this下面的myMc的_x。<br/><br/>这样说对一些谈程序色变的美工更容易接受一些。<br/><br/>再后面的部分cr&#101;ateEmptyMovieClip，看起来很长，但是如果你E文足够好，应该能看出来，这就是创建空的影片剪辑的英语。所以，这句话还是很好记的。当然，在程序命令里，他把这几个单词都连接起来了，并且中间每个单词的第一个字母大写。这种写法很形象地被称为&#34;骆驼式&#34;命名法。Flash里边的变量名、属性、方法、命令等等，基本都遵循这种规则。你如果希望你写的程序看起来比较专业，同时还容易理解，希望你也一开始养成良好的命名习惯，坚持使用&#34;骆驼式命名法&#34;。还有一点需要强调的是，flash是严格区分大小写的，所以，&#34;myMc&#34;和&#34;mymc&#34;并不是一个东西，如果你写的程序怎么调试都不对，记住检查一下大小写的问题。这是初学者经常会犯的错误。<br/><br/>再看后面，(&#34;myMc&#34;,1)，前面是你为影片剪辑命的名，后面是它的深度，命的名很好理解。深度需要解释一下，用过flash或者photoshop的人都知道，有一个层的概念，上面的层会压住下面的层。深度也是一个类似的概念。深度值越大，越在上面，深度值越小越在下面。但是深度有几点和层不同的概念需要记住。<br/><br/>第一，一个深度上只能有一个东西存在。如果有两个的话，后面建立的会覆盖掉前面的。<br/><br/>第二，所有在场景里通过绘图工具和拖拽而不是程序建立的对象，默认的处于第0层，也就是说，你用程序建立的影片剪辑，都会盖住里处于时间轴上的那些对象。不管这些对象在时间轴上是第几层，都会在程序建立的影片剪辑下面。<br/><br/>所以，这两点就告诉我们，第一，如果你已经在一个深度上建立了一个影片剪辑，再建立下一个的时候，换个深度。<br/><br/>比如，<br/><br/><div class="UBBPanel codePanel"><div class="UBBTitle"><a onClick="copycode(code19496);" style="float:right;cursor: pointer;font-weight: normal; font-style: normal">复制内容到剪贴板</a><img src="http://www.mzwu.com/images/code.gif" style="margin:0px 2px -3px 0px;" alt="程序代码"/> 程序代码</div><div class="UBBContent" id=code19496>this.cr&#101;ateEmptyMovieClip(&#34;myMc&#34;,1);<br/>this.cr&#101;ateEmptyMovieClip(&#34;myBtn&#34;,1);</div></div><br/>这样的写法是错误的，第一个影片剪辑，myMc被覆盖了。<br/><br/>正确的写法应该是这样的<br/><br/><div class="UBBPanel codePanel"><div class="UBBTitle"><a onClick="copycode(code20564);" style="float:right;cursor: pointer;font-weight: normal; font-style: normal">复制内容到剪贴板</a><img src="http://www.mzwu.com/images/code.gif" style="margin:0px 2px -3px 0px;" alt="程序代码"/> 程序代码</div><div class="UBBContent" id=code20564>this.cr&#101;ateEmptyMovieClip(&#34;myMc&#34;,1);<br/>this.cr&#101;ateEmptyMovieClip(&#34;myBtn&#34;,2);</div></div><br/>或者<br/><br/><div class="UBBPanel codePanel"><div class="UBBTitle"><a onClick="copycode(code17360);" style="float:right;cursor: pointer;font-weight: normal; font-style: normal">复制内容到剪贴板</a><img src="http://www.mzwu.com/images/code.gif" style="margin:0px 2px -3px 0px;" alt="程序代码"/> 程序代码</div><div class="UBBContent" id=code17360>this.cr&#101;ateEmptyMovieClip(&#34;myMc&#34;, this.getNextHighestDepth());<br/>this.cr&#101;ateEmptyMovieClip(&#34;myBtn&#34;, this.getNextHighestDepth());</div></div><br/>getNextHighestDepth()是获得上一深度的意思；以确保 Flash 将该影片剪辑呈现在当前影片剪辑中同一级和同一层上所有其它对象的前面。<br/><br/>第二点，如果你在场景里，用工具建立了一个影片剪辑，或者从库里拖出来一个影片剪辑，放到场景里了，现在你想把它放到刚才你用cr&#101;ateEmptyMovieClip建立的影片剪辑上面，默认的情况下不可能。你会看到，cr&#101;ateEmptyMovieClip建立的影片剪辑把它给盖住了。<br/><br/>好了，现在我们就学会了如何用程序建立一个影片剪辑。<br/><br/>那边有同学说了，你建立了半天，但是我一发布，啥都没有，我建立这个空的影片剪辑有啥用呢？<br/><br/>这个问题，我来回答，首先，大家都知道，flash的影片剪辑不仅仅是为了显示一个可见的东西，还有一个重要的作用，就是容器。影片剪辑可以作为放别的影片剪辑或者其他对象的容器。你可以把需要一起运动的很多东西，放到一个影片剪辑里，这样指挥它们运动的时候比较方便。就像你如果把一个苹果、一个梨、一个香蕉，从a处移动到b处，一种方法是把它们分别移动过去，还有一种方法，是放到一个篮子里，一起移过去。容器在这个动画里的作用，就是这个篮子。<br/><br/>第二点，你现在之所以看不到你建立的影片剪辑，是因为你还没有对它进行任何操作。如果你真的非要看到它才放心，请把下面这段代码拷到你的程序下面。这段代码的作用是在myMc的影片剪辑里画了一个黑色的长方形，至于具体如何画的，我们以后会讲。愿意研究的人，可以先熟悉一下。<br/><br/><div class="UBBPanel codePanel"><div class="UBBTitle"><a onClick="copycode(code26973);" style="float:right;cursor: pointer;font-weight: normal; font-style: normal">复制内容到剪贴板</a><img src="http://www.mzwu.com/images/code.gif" style="margin:0px 2px -3px 0px;" alt="程序代码"/> 程序代码</div><div class="UBBContent" id=code26973>with(this.myMc)<br/>{<br/>&#160;&#160;&#160;&#160;beginFill(0x000000,100);<br/>&#160;&#160;&#160;&#160;moveTo(0,0);<br/>&#160;&#160;&#160;&#160;lineTo(200,0);<br/>&#160;&#160;&#160;&#160;lineTo(200,100);<br/>&#160;&#160;&#160;&#160;lineTo(0,100);<br/>&#160;&#160;&#160;&#160;lineTo(0,0);<br/>&#160;&#160;&#160;&#160;endFill();<br/>}</div></div><br/>好了，现在发布一下，(不知道发布是什么的同学，请按enter+ctrl，就发布了)看到了吧？<br/><br/>那边又有一位同学有意见了。你这么费劲，打了半天字，写了这么多行，才花了这样一个正方形，效率太低了，我用绘图工具，一比划，就出来了。比你快多了，不知道你写这么多行程序有什么用？<br/><br/>首先，第一绘图工具在作矢量图型方面，的确比用代码生成更快。这也是flash的优势所在。<br/><br/>第二，代码生成并非没有用处，这个以后随着学习的深入，大家就逐渐明白了，这儿不废话了。<br/><br/><strong>二、从库中加载影片剪辑</strong><br/><br/>当然，既然flash在绘图方面有自己独到的优势，并且我们平时应用中经常将用ps或其他软件做好的图型直接导入flash的库中，供影片剪辑调用，如果flash as 仅仅为了代码化，就把这一优势扔掉，就是昏了头了。所以flash as里边，除了cr&#101;ateEmptyMovieClip来建立影片剪辑以外，还有一种方法，可以直接把库中的影片剪辑加载到场景中来。<br/><br/>我们先回忆一下，如果不用代码，直接把库里的元件放到场景里，怎么办？对，很简单。直接一拖，就过来了。用代码来实现应该怎么做呢？<br/><br/>首先在库中找到你要加载的影片剪辑，用右键点击他，选&#34;链接&#34;，弹出一个小框。选中&#34;为action script导出&#34;，此时你可以看到，&#34;在第一桢导出&#34;同时也被选中了。在标识符框中，填入你为这个影片剪辑起的标识符。在这里建议影片剪辑的名称和标识符统一起来，比较便于管理。比如你的影片剪辑叫&#34;myMc&#34;，标示符最好也叫&#34;myMc&#34;，点击确定。<br/><br/>然后返回主场景，选中第一祯，在动作面板里写入<br/><br/><div class="UBBPanel codePanel"><div class="UBBTitle"><a onClick="copycode(code98133);" style="float:right;cursor: pointer;font-weight: normal; font-style: normal">复制内容到剪贴板</a><img src="http://www.mzwu.com/images/code.gif" style="margin:0px 2px -3px 0px;" alt="程序代码"/> 程序代码</div><div class="UBBContent" id=code98133>this.attachMovie(&#34;myMc&#34;,&#34;myMc&#34;, this.getNextHighestDepth());</div></div><br/>然后发布，看一下，你的影片剪辑是不是已经在场景里了？<br/><br/>这儿解释一下这句命令，this.就不用说了，后面attachMovie就是把场景里标示符为myMc的影片剪辑，加载到库里，并命名为myMc，当然，你也可以不叫它myMc，而叫它aaa，这样，上面的那段话就变成<br/><br/><div class="UBBPanel codePanel"><div class="UBBTitle"><a onClick="copycode(code11210);" style="float:right;cursor: pointer;font-weight: normal; font-style: normal">复制内容到剪贴板</a><img src="http://www.mzwu.com/images/code.gif" style="margin:0px 2px -3px 0px;" alt="程序代码"/> 程序代码</div><div class="UBBContent" id=code11210>this.attachMovie(&#34;myMc&#34;,&#34;aaa&#34;, this.getNextHighestDepth());</div></div><br/>你也可以把myMc从库中取出来两次，一次叫myMc，一次叫aaa，<br/><br/><div class="UBBPanel codePanel"><div class="UBBTitle"><a onClick="copycode(code25096);" style="float:right;cursor: pointer;font-weight: normal; font-style: normal">复制内容到剪贴板</a><img src="http://www.mzwu.com/images/code.gif" style="margin:0px 2px -3px 0px;" alt="程序代码"/> 程序代码</div><div class="UBBContent" id=code25096>this.attachMovie(&#34;myMc&#34;,&#34;myMc&#34;, this.getNextHighestDepth());<br/>this.attachMovie(&#34;myMc&#34;,&#34;aaa&#34;, this.getNextHighestDepth());</div></div><br/>这样你下面写myMc就是指第一个，写aaa就是指第二个。<br/><br/>说到这儿，又有同学有意见了，你这样作还是很麻烦，哪有我这边一拖，这么简单啊。<br/><br/>的确，当你仅仅对一个影片剪辑执行这样的操作的时候，的确效率不高，但是，如果你需要把myMc这个影片剪辑从库中取出来100次甚至1000次的话，请问，这位同学，你拖来拖去的，是不是有点腰酸背痛腿抽筋呢。<br/><br/>但是用代码来实现的话，一切都变得简单了<br/><br/><div class="UBBPanel codePanel"><div class="UBBTitle"><a onClick="copycode(code56881);" style="float:right;cursor: pointer;font-weight: normal; font-style: normal">复制内容到剪贴板</a><img src="http://www.mzwu.com/images/code.gif" style="margin:0px 2px -3px 0px;" alt="程序代码"/> 程序代码</div><div class="UBBContent" id=code56881>for(i=0;i&lt;100;i++)<br/>{<br/>&#160;&#160;&#160;&#160;this.attachMovie(&#34;myMc&#34;,&#34;myMc&#34;+i, this.getNextHighestDepth());<br/>}</div></div><br/>看看，就这样三行代码，就完成了一百次，如果你想用1000次，直接把i&lt;100，改成i&lt;1000就OK了，从此腰不酸了，背不疼了，腿也不抽筋了。<br/><br/>上面用到的就是程序里边最常用到的一种循环方式，for循环，没见过的同学可以先多看几眼，混个脸熟，以后，咱们还会详细介绍。<br/><br/>如果你想把影片剪辑从库中取出来，让他横着排列，每隔50个像素放一个，<br/><br/><div class="UBBPanel codePanel"><div class="UBBTitle"><a onClick="copycode(code8410);" style="float:right;cursor: pointer;font-weight: normal; font-style: normal">复制内容到剪贴板</a><img src="http://www.mzwu.com/images/code.gif" style="margin:0px 2px -3px 0px;" alt="程序代码"/> 程序代码</div><div class="UBBContent" id=code8410>for(i=0;i&lt;100;i++)<br/>{<br/>&#160;&#160;&#160;&#160;this.attachMovie(&#34;myMc&#34;,&#34;myMc&#34;+i, this.getNextHighestDepth(),{_x:(50*i)});<br/>}</div></div><br/>如果你想把影片剪辑从库中取出来，让他竖着排列，每隔50个像素放一个，<br/><br/><div class="UBBPanel codePanel"><div class="UBBTitle"><a onClick="copycode(code6937);" style="float:right;cursor: pointer;font-weight: normal; font-style: normal">复制内容到剪贴板</a><img src="http://www.mzwu.com/images/code.gif" style="margin:0px 2px -3px 0px;" alt="程序代码"/> 程序代码</div><div class="UBBContent" id=code6937>for(i=0;i&lt;100;i++)<br/>{<br/>&#160;&#160;&#160;&#160;this.attachMovie(&#34;myMc&#34;,&#34;myMc&#34;+i, this.getNextHighestDepth(),{_y:(50*i)});<br/>}</div></div><br/>看一看，程序实现起来是不是很简单呢？这节课就先讲到这里吧，下节课我们将介绍影片剪辑的常用属性，以及如何利用这些属性，使影片剪辑真正的动起来。<br/><br/>这节课最后这些内容，没有看懂的同学，下节课继续看，到时候一定会豁然开朗。<br/><br/>因为刚刚开始讲，很多都是基本规则，回头一看，废话又很多。不过以后，随着深入，相信真正的干货会越来越多的。]]></description>
		</item>
		
			<item>
			<link>http://www.mzwu.com/article.asp?id=1932</link>
			<title><![CDATA[flash wmode参数详解]]></title>
			<author>dnawo@sohu.com(dnawo)</author>
			<category><![CDATA[三剑客]]></category>
			<pubDate>Thu,05 Mar 2009 09:18:00 +0800</pubDate>
			<guid>http://www.mzwu.com/default.asp?id=1932</guid>
		<description><![CDATA[在做web开发中可能会遇到flash遮挡页面中元素的情况，无论怎么设置flash容器和层的深度(z-index)也无济于事，现有的解决方案是在插入flash的embed或object标签中加入&#34;wmode&#34;属性并设置为wmode=&#34;transparent&#34;或&#34;opaque&#34;，但wmode属性到底是什么意义，为什么可以解决这个问题呢？<br/><br/>window mode(wmode)<br/><br/>wmode即窗口模式总共有三种，看看当年Macromedia官方的说法：<br/><br/>·Window: Use the Window value to play a Flash Player movie in its own rectangular window on a web page. This is the default value for wmode and it works the way the classic Flash Player works. This normally provides the fastest animation performance. <br/>·Opaque: By using the Opaque value you can use JavaScript to move o&#114; resize movies that don’t need a transparent background. Opaque mode makes the movie hide everything behind it on the page. Additionally, opaque mode moves elements behind Flash movies (for example, with dynamic HTML) to prevent them from showing through. <br/>·Transparent: Transparent mode allows the background of the HTML page, o&#114; the DHTML layer underneath the Flash movie o&#114; layer, to show through all the transparent portions of the movie. This allows you to overlap the movie with other elements of the HTML page. Animation performance might be slower when you use this value. <br/><br/>window 模式<br/><br/>默认情况下的显示模式，在这种模式下flash player有自己的窗口句柄，这就意味着flash影片是存在于Windows中的一个显示实例，并且是在浏览器核心显示窗口之上的，所以flash只是貌似显示在浏览器中，但这也是flash最快最有效率的渲染模式。由于他是独立于浏览器的HTML渲染表面，这就导致默认显示方式下flash总是会遮住位置与他重合的所有DHTML层。<br/><br/>但是大多数苹果电脑浏览器会允许DHTML层显示在flash之上，但当flash影片播放时会出现比较诡异的现象，比如DHTML层像被flash刮掉一块一样显示异常。<br/><br/>Opaque 模式<br/><br/>这是一种无窗口模式，在这种情况下flash player没有自己的窗口句柄，这就需要浏览器需要告诉flash player在浏览器的渲染表面绘制的时间和位置。这时flash影片就不会在高于浏览器HTML渲染表面而是与其他元素一样在同一个页面上,因此你就可以使用z-index值来控制DHTML元素是遮盖flash或者被遮盖。<br/><br/>Transparent 模式<br/><br/>透明模式，在这种模式下flash player会将stage的背景色alpha值将为0并且只会绘制stage上真实可见的对象，同样你也可以使用z-index来控制flash影片的深度值，但是与Opaque模式不同的是这样做会降低flash影片的回放效果，而且在9.0.115之前的flash player版本设置wmode=&#34;opaque&#34;或&#34;transparent&#34;会导致全屏模式失效。<br/><br/>了解了各种模式的实现方式和意义在以后的开发中就可以按照具体情况选择设置wmode属性的值了。]]></description>
		</item>
		
</channel>
</rss>
