<?xml version="1.0" standalone="yes"?>
<?xml-stylesheet type="text/xsl" href="css/rss.xslt"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>翼灵AS程序员之路 - AS3Dmod</title><link>http://www.dodochen.com/</link><description>ActionScript3.0 - </description><generator>RainbowSoft Studio Z-Blog 1.8 Arwen Build 81206</generator><language>zh-CN</language><copyright>苏ICP备07500709号 Copyright 2008-2009 专注AS-website建设. Design by Jacky.</copyright><pubDate>Sun, 05 Sep 2010 08:01:33 +0800</pubDate><item><title>AS3Dmod之进阶篇---Twist</title><author>sstpc@163.com (jacky)</author><link>http://www.dodochen.com/post/30.html</link><pubDate>Wed, 04 Mar 2009 18:14:26 +0800</pubDate><guid>http://www.dodochen.com/post/30.html</guid><description><![CDATA[<p><embed width="550" height="400" loop="true" play="true" type="application/x-shockwave-flash" src="http://www.dodochen.com/upload/2009/3/Twist.swf" menu="true"></embed><br />虽然研究完Twist还是对其一知半解，但知道怎么用，还是另我很兴奋，如果能够灵活应用的话，这玩意就太多用处了。<br />上面的例子单靠blend是实现不了的，看了zupko的文章<a href="http://blog.zupko.info/?p=140">http://blog.zupko.info/?p=140</a>&nbsp;，再查了3dmodAPI果然。<br />还有这么灵活的东西。但是zupko的twist是自己写的，不是3dmod里面的，不过思路是一样。<br />Twist有三个参数可以访问到。angle，vector，center；这节知识点也就在这3个参数的应用。<br />大家先来观察下文档类代码和上节介绍blend不同的地方我用黑体标注。<br />&nbsp;</p><ol>    <li class="alt"><font face="Courier New" color="#3399ff" size="2">package</font></li>    <li><font face="Courier New" color="#333333" size="2">{</font></li>    <li class="alt"><font face="Courier New" color="#333333" size="2"><font color="#3399ff">import</font> com.as3dmod.ModifierStack;</font></li>    <li><font face="Courier New" color="#333333" size="2"><font color="#3399ff">import</font> com.as3dmod.modifiers.<strong>Twist</strong>;</font></li>    <li class="alt"><font face="Courier New" color="#333333" size="2"><font color="#3399ff">import</font> com.as3dmod.plugins.pv3d.LibraryPv3d;</font></li>    <li><font face="Courier New" color="#333333" size="2"><font color="#3399ff">import</font> com.as3dmod.util.Phase; </font></li>    <li class="alt">&nbsp;<strong>import com.as3dmod.core.Vector3;</strong> //和Numeber3D差不多，我理解的是3维向量，参数（x,y,z）</li>    <li class="alt"><font face="Courier New" color="#333333" size="2"><font color="#3399ff">import</font> org.papervision3d.cameras.CameraType;</font></li>    <li><font face="Courier New" color="#333333" size="2"><font color="#3399ff">import</font> org.papervision3d.materials.MovieMaterial;</font></li>    <li class="alt"><font face="Courier New" color="#333333" size="2"><font color="#3399ff">import</font> org.papervision3d.objects.primitives.Plane;</font></li>    <li><font face="Courier New" color="#333333" size="2"><font color="#3399ff">import</font> org.papervision3d.view.BasicView;</font></li>    <li class="alt"><font face="Courier New" color="#333333" size="2"><font color="#3399ff">import</font> org.papervision3d.view.layer.ViewportLayer;</font></li>    <li>&nbsp;</li>    <li class="alt"><font face="Courier New" color="#333333" size="2"><font color="#3399ff">import</font> <font color="#3399ff">flash</font>.events.<font color="#3399ff">Event</font>;</font></li>    <li><font face="Courier New" color="#333333" size="2"><font color="#3399ff">import</font> <font color="#3399ff">flash</font>.<font color="#3399ff">filters</font>.<font color="#3399ff">DropShadowFilter</font>;</font></li>    <li class="alt">&nbsp;</li>    <li><font face="Courier New" color="#333333" size="2"><font color="#3399ff">public</font> <font color="#3399ff">class</font> MainWaft3DPlane <font color="#3399ff">extends</font> BasicView</font></li>    <li class="alt"><font face="Courier New" color="#333333" size="2">{</font><strong><br />    &nbsp;private var axis:Vector3 = new Vector3(0, 1, 0);<br />    &nbsp;private var center:Vector3 = new Vector3(0,800,0)&nbsp;;<br />    //这两个实在不知道该怎么解释，这样想或许好理解点。center就是Y方向800的一个力源axis是定义了Y的一个向量，那么就是绕Y轴做扭曲<br />    //其实我也搞不清楚 多调整几次参数就知道他怎么用了。</strong></li>    <li class="alt"><font face="Courier New" color="#333333" size="2"><font color="#3399ff">private</font> <font color="#3399ff">var</font> plane:Plane;</font></li>    <li><font face="Courier New" color="#333333" size="2"><font color="#3399ff">private</font> <font color="#3399ff">var</font> mstack:ModifierStack;</font></li>    <li class="alt"><strong><font face="Courier New" color="#333333" size="2"><font color="#3399ff">private</font> <font color="#3399ff">var</font> twist:Twist;</font> </strong></li>    <li><font face="Courier New" color="#333333" size="2"><font color="#3399ff">private</font> <font color="#3399ff">var</font> phase:Phase;</font></li>    <li class="alt">&nbsp;</li>    <li><font face="Courier New" color="#333333" size="2"><font color="#3399ff">public</font> <font color="#3399ff">function</font> MainWaft3DPlane()</font></li>    <li class="alt"><font face="Courier New" color="#333333" size="2">{</font></li>    <li><font face="Courier New" color="#333333" size="2">&nbsp;&nbsp;<font color="#3399ff">super</font>(550, 400, <font color="#3399ff">true</font>, <font color="#3399ff">false</font>, CameraType.FREE);</font></li>    <li class="alt">&nbsp;</li>    <li><font face="Courier New" color="#333333" size="2">&nbsp;&nbsp;<font color="#3399ff">var</font> mat:MovieMaterial=<font color="#3399ff">new</font> MovieMaterial(<font color="#3399ff">new</font> Mc(),<font color="#3399ff">false</font>,<font color="#3399ff">true</font>);</font></li>    <li class="alt"><font face="Courier New" color="#333333" size="2">&nbsp;&nbsp;mat.doubleSided=<font color="#3399ff">true</font>;</font></li>    <li><font face="Courier New" color="#333333" size="2">&nbsp;&nbsp;plane=<font color="#3399ff">new</font> Plane(mat,285,400,4,4);</font></li>    <li class="alt"><font face="Courier New" color="#333333" size="2">&nbsp;&nbsp;scene.<font color="#3399ff">addChild</font>(plane);</font></li>    <li><font face="Courier New" color="#333333" size="2">&nbsp;&nbsp;&nbsp;&nbsp;camera.moveForward(450);</font></li>    <li class="alt"><font face="Courier New" color="#333333" size="2">&nbsp;&nbsp;viewport.getChildLayer(plane).<font color="#3399ff">filters</font>=[<font color="#3399ff">new</font> <font color="#3399ff">DropShadowFilter</font>(4.0,45,0x333333)];</font></li>    <li>&nbsp;</li>    <li class="alt"><font face="Courier New" color="#333333" size="2">&nbsp;&nbsp;mstack = <font color="#3399ff">new</font> ModifierStack(<font color="#3399ff">new</font> LibraryPv3d(), plane);</font></li>    <li><strong><font face="Courier New" color="#333333" size="2">twist = new Twist((90/180) * Math.PI);</font></strong></li>    <li class="alt">&nbsp; //因为摄像头被移到了前面 所以角度调到90度才是画面出现的侧边扭曲</li>    <li><font face="Courier New" color="#333333" size="2">mstack.addModifier(<strong>twist </strong>);</font><font face="Courier New" color="#333333" size="2">&nbsp;&nbsp;&nbsp; </font></li>    <li class="alt"><font face="Courier New" color="#333333" size="2">&nbsp;&nbsp;startRendering();</font></li>    <li><font face="Courier New" color="#333333" size="2">&nbsp;&nbsp;phase = <font color="#3399ff">new</font> Phase();</font></li>    <li class="alt"><font face="Courier New" color="#333333" size="2">}</font></li>    <li class="alt"><font face="Courier New" color="#333333" size="2"><font color="#3399ff">protected</font> <font color="#3399ff">override</font> <font color="#3399ff">function</font> onRenderTick(event:<font color="#3399ff">Event</font> = <font color="#3399ff">null</font>):<font color="#3399ff">void</font></font></li>    <li><font face="Courier New" color="#333333" size="2">{</font></li>    <li class="alt"><font face="Courier New" color="#333333" size="2">&nbsp;&nbsp;phase.<font color="#3399ff">value</font>+=.05;</font></li>    <li>&nbsp;&nbsp;<strong> <font face="Courier New" color="#333333" size="2">twist</font>.vector=axis;<br />    &nbsp; <font face="Courier New" color="#333333" size="2">twist</font>.center=center;<br />    &nbsp;&nbsp; <font face="Courier New" color="#333333" size="2">twist</font>.angle=phase.phasedValue * 0.5;</strong> //一个浮动值</li>    <li><font face="Courier New" color="#333333" size="2">&nbsp;&nbsp;mstack.<font color="#3399ff">apply</font>();</font></li>    <li class="alt"><font face="Courier New" color="#333333" size="2">&nbsp;&nbsp;<font color="#3399ff">super</font>.onRenderTick(event);</font></li>    <li><font face="Courier New" color="#333333" size="2">}</font></li>    <li class="alt"><font face="Courier New" color="#333333" size="2">}</font></li>    <li><font face="Courier New" color="#333333" size="2">}</font><br />    &nbsp;</li></ol>]]></description><category>AS3Dmod</category><comments>http://www.dodochen.com/post/30.html#comment</comments><wfw:comment>http://www.dodochen.com/</wfw:comment><wfw:commentRss>http://www.dodochen.com/feed.asp?cmt=30</wfw:commentRss><trackback:ping>http://www.dodochen.com/cmd.asp?act=tb&amp;id=30&amp;key=ff5f4325</trackback:ping></item><item><title>AS3Dmod之入门篇---Bend</title><author>sstpc@163.com (jacky)</author><link>http://www.dodochen.com/post/29.html</link><pubDate>Wed, 04 Mar 2009 13:34:41 +0800</pubDate><guid>http://www.dodochen.com/post/29.html</guid><description><![CDATA[<p>&nbsp;<embed menu="true" src="http://www.dodochen.com/upload/2009/3/Bend.swf" type="application/x-shockwave-flash" play="true" loop="true" height="400" width="550"></embed><br />看起来像不像翅膀一样扇。<br />这里引进介绍Bend也是很实用的一个3D修饰。<br /><a class="signatureLink" href="http://www.everydayflash.com/flash/as3dmod/doc/com/as3dmod/modifiers/Bend.html#Bend()">Bend</a>(f:Number = 0, o:Number = .5, a:Number = 0)<br />它有3个参数第一个参数一般默认为0；bend.force+=.01即初始值从0开始递增，<br />第二个参数扭曲幅度，0.5即沿物体一半处扭曲。<br />最后一个参数是扭曲的起始弧度；弧度=角度/180*Math.PI;<br />这一节中同时会介绍phase，个人认为它是个辅助扭曲运动的东西，<br />phase.value+=.05;会自行在正负值之间相当于sin；<br />当然如果你不用phase 也可以用tweener来实现介于-1~1之间的运动。<br />&nbsp;private function tweenA():void {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Tweener.addTween(bend, {force:.5, time:.5, transition:&quot;easeInOutElastic&quot;, onComplete:tweenB});<br />&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />private function tweenB():void {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Tweener.addTween(bend, {force:-.5, time:.5, transition:&quot;easeInOutElastic&quot;, onComplete:tweenA});<br />&nbsp;&nbsp;}<br />下面给出文档类：<br />&nbsp;</p><ol>    <li><font face="Courier New" color="#3399ff" size="2">package</font></li>    <li><font face="Courier New" color="#333333" size="2">{</font></li>    <li><font face="Courier New" color="#333333" size="2"><font color="#3399ff">import</font> com.as3dmod.ModifierStack;</font></li>    <li><font face="Courier New" color="#333333" size="2"><font color="#3399ff">import</font> com.as3dmod.modifiers.Bend;</font></li>    <li><font face="Courier New" color="#333333" size="2"><font color="#3399ff">import</font> com.as3dmod.plugins.pv3d.LibraryPv3d;</font></li>    <li><font face="Courier New" color="#333333" size="2"><font color="#3399ff">import</font> com.as3dmod.util.Phase; </font></li>    <li>&nbsp;</li>    <li>&nbsp;</li>    <li><font face="Courier New" color="#333333" size="2"><font color="#3399ff">import</font> caurina.transitions.Tweener;</font></li>    <li>&nbsp;</li>    <li><font face="Courier New" color="#333333" size="2"><font color="#3399ff">import</font> org.papervision3d.cameras.CameraType;</font></li>    <li><font face="Courier New" color="#333333" size="2"><font color="#3399ff">import</font> org.papervision3d.materials.MovieMaterial;</font></li>    <li><font face="Courier New" color="#333333" size="2"><font color="#3399ff">import</font> org.papervision3d.objects.primitives.Plane;</font></li>    <li><font face="Courier New" color="#333333" size="2"><font color="#3399ff">import</font> org.papervision3d.view.BasicView;</font></li>    <li><font face="Courier New" color="#333333" size="2"><font color="#3399ff">import</font> org.papervision3d.view.layer.ViewportLayer;</font></li>    <li>&nbsp;</li>    <li><font face="Courier New" color="#333333" size="2"><font color="#3399ff">import</font> <font color="#3399ff">flash</font>.events.<font color="#3399ff">Event</font>;</font></li>    <li><font face="Courier New" color="#333333" size="2"><font color="#3399ff">import</font> <font color="#3399ff">flash</font>.<font color="#3399ff">filters</font>.<font color="#3399ff">DropShadowFilter</font>;</font></li>    <li>&nbsp;</li>    <li><font face="Courier New" color="#333333" size="2"><font color="#3399ff">public</font> <font color="#3399ff">class</font> MainWaft3DPlane <font color="#3399ff">extends</font> BasicView</font></li>    <li><font face="Courier New" color="#333333" size="2">{</font></li>    <li>&nbsp;</li>    <li><font face="Courier New" color="#333333" size="2"><font color="#3399ff">private</font> <font color="#3399ff">var</font> plane:Plane;</font></li>    <li><font face="Courier New" color="#333333" size="2"><font color="#3399ff">private</font> <font color="#3399ff">var</font> mstack:ModifierStack;</font></li>    <li><font face="Courier New" color="#333333" size="2"><font color="#3399ff">private</font> <font color="#3399ff">var</font> bend:Bend;</font></li>    <li><font face="Courier New" color="#333333" size="2"><font color="#3399ff">private</font> <font color="#3399ff">var</font> phase:Phase;</font></li>    <li>&nbsp;</li>    <li><font face="Courier New" color="#333333" size="2"><font color="#3399ff">public</font> <font color="#3399ff">function</font> MainWaft3DPlane()</font></li>    <li><font face="Courier New" color="#333333" size="2">{</font></li>    <li><font face="Courier New" color="#333333" size="2">&nbsp;&nbsp;<font color="#3399ff">super</font>(550, 400, <font color="#3399ff">true</font>, <font color="#3399ff">false</font>, CameraType.FREE);</font></li>    <li>&nbsp;</li>    <li><font face="Courier New" color="#333333" size="2">&nbsp;&nbsp;<font color="#3399ff">var</font> mat:MovieMaterial=<font color="#3399ff">new</font> MovieMaterial(<font color="#3399ff">new</font> Mc(),<font color="#3399ff">false</font>,<font color="#3399ff">true</font>);</font></li>    <li><font face="Courier New" color="#333333" size="2">&nbsp;&nbsp;mat.doubleSided=<font color="#3399ff">true</font>;</font></li>    <li><font face="Courier New" color="#333333" size="2">&nbsp;&nbsp;plane=<font color="#3399ff">new</font> Plane(mat,285,400,4,4);</font></li>    <li><font face="Courier New" color="#333333" size="2">&nbsp;&nbsp;scene.<font color="#3399ff">addChild</font>(plane);</font></li>    <li><font face="Courier New" color="#333333" size="2">&nbsp;&nbsp;&nbsp;&nbsp;camera.moveForward(450);</font></li>    <li><font face="Courier New" color="#333333" size="2">&nbsp;&nbsp;viewport.getChildLayer(plane).<font color="#3399ff">filters</font>=[<font color="#3399ff">new</font> <font color="#3399ff">DropShadowFilter</font>(4.0,45,0x333333)];</font></li>    <li>&nbsp;</li>    <li><font face="Courier New" color="#333333" size="2">&nbsp;&nbsp;mstack = <font color="#3399ff">new</font> ModifierStack(<font color="#3399ff">new</font> LibraryPv3d(), plane);</font></li>    <li><font face="Courier New" color="#333333" size="2">bend=<font color="#3399ff">new</font> Bend(0,.5,(90/180) * <font color="#3399ff">Math</font>.<font color="#3399ff">PI</font>);</font></li>    <li>&nbsp;</li>    <li><font face="Courier New" color="#333333" size="2">mstack.addModifier(bend);</font></li>    <li><font face="Courier New" color="#333333" size="2">&nbsp;&nbsp;&nbsp;&nbsp;<font color="#ff9900">//tweenA();</font></font></li>    <li><font face="Courier New" color="#333333" size="2">&nbsp;&nbsp;&nbsp;&nbsp; </font></li>    <li><font face="Courier New" color="#333333" size="2">&nbsp;&nbsp;startRendering();</font></li>    <li><font face="Courier New" color="#333333" size="2">&nbsp;&nbsp;phase = <font color="#3399ff">new</font> Phase();</font></li>    <li><font face="Courier New" color="#333333" size="2">}</font></li>    <li><font face="Courier New" color="#ff9900" size="2">/* private function tweenA():void {</font></li>    <li><font face="Courier New" color="#ff9900" size="2">&nbsp;&nbsp;&nbsp;&nbsp; Tweener.addTween(bend, {force:.5, time:.5, transition:&quot;easeInOutElastic&quot;, onComplete:tweenB});</font></li>    <li><font face="Courier New" color="#ff9900" size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</font></li>    <li><font face="Courier New" color="#ff9900" size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></li>    <li><font face="Courier New" color="#ff9900" size="2">private function tweenB():void {</font></li>    <li><font face="Courier New" color="#ff9900" size="2">&nbsp;&nbsp;&nbsp;&nbsp; Tweener.addTween(bend, {force:-.5, time:.5, transition:&quot;easeInOutElastic&quot;, onComplete:tweenA});</font></li>    <li><font face="Courier New" color="#ff9900" size="2">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}*/</font></li>    <li><font face="Courier New" color="#333333" size="2"><font color="#3399ff">protected</font> <font color="#3399ff">override</font> <font color="#3399ff">function</font> onRenderTick(event:<font color="#3399ff">Event</font> = <font color="#3399ff">null</font>):<font color="#3399ff">void</font></font></li>    <li><font face="Courier New" color="#333333" size="2">{</font></li>    <li><font face="Courier New" color="#333333" size="2">&nbsp;&nbsp;phase.<font color="#3399ff">value</font>+=.05;</font></li>    <li>&nbsp;</li>    <li><font face="Courier New" color="#333333" size="2">&nbsp;&nbsp;bend.force=phase.phasedValue;</font></li>    <li>&nbsp;</li>    <li>&nbsp;</li>    <li><font face="Courier New" color="#333333" size="2">&nbsp;&nbsp;mstack.<font color="#3399ff">apply</font>();</font></li>    <li><font face="Courier New" color="#333333" size="2">&nbsp;&nbsp;<font color="#3399ff">super</font>.onRenderTick(event);</font></li>    <li><font face="Courier New" color="#333333" size="2">}</font></li>    <li><font face="Courier New" color="#333333" size="2">}</font></li>    <li><font face="Courier New" color="#333333" size="2">}</font></li></ol>]]></description><category>AS3Dmod</category><comments>http://www.dodochen.com/post/29.html#comment</comments><wfw:comment>http://www.dodochen.com/</wfw:comment><wfw:commentRss>http://www.dodochen.com/feed.asp?cmt=29</wfw:commentRss><trackback:ping>http://www.dodochen.com/cmd.asp?act=tb&amp;id=29&amp;key=6100a9fa</trackback:ping></item><item><title>AS3Dmod之入门篇---Perlin</title><author>sstpc@163.com (jacky)</author><link>http://www.dodochen.com/post/28.html</link><pubDate>Wed, 04 Mar 2009 13:27:16 +0800</pubDate><guid>http://www.dodochen.com/post/28.html</guid><description><![CDATA[<p><embed src="http://www.dodochen.com/upload/2009/3/Perlin.swf" width="550" height="400" type="application/x-shockwave-flash" play="true" loop="true" menu="true"></embed><br />大致步骤还是3步 <br />1：&nbsp; <font face="Courier New"><font size="2"><font color="#3399ff">new</font><font color="#333333"> ModifierStack(</font><font color="#3399ff">new</font></font><font color="#333333" size="2"> LibraryPv3d(), plane);<br />2： mstack.addModifier(<font face="Arial" color="#000000">perlin</font>);<br />3：&nbsp;mstack.<font color="#3399ff">apply</font>();</font></font><br />只需把 <br />var perlin:Perlin=new Perlin(1);<br />&nbsp; mstack.addModifier(perlin);<br />替换掉原先的<br />var noise:Noise = new Noise(20);<br />&nbsp;mstack.addModifier(noise);<br />把导入类<font size="2"><font face="Courier New"><font color="#3399ff">import</font> com.as3dmod.modifiers.Noise;</font></font><br /><font face="Courier New"><font size="2"><font color="#3399ff"><font face="Arial" color="#000000">替换成</font>import</font> com.as3dmod.modifiers.<font face="Arial">Perlin</font>;</font></font> <br />其他代码不变（参照上节Noise）；</p>]]></description><category>AS3Dmod</category><comments>http://www.dodochen.com/post/28.html#comment</comments><wfw:comment>http://www.dodochen.com/</wfw:comment><wfw:commentRss>http://www.dodochen.com/feed.asp?cmt=28</wfw:commentRss><trackback:ping>http://www.dodochen.com/cmd.asp?act=tb&amp;id=28&amp;key=7ae6c911</trackback:ping></item><item><title>AS3Dmod之入门篇---Noise</title><author>sstpc@163.com (jacky)</author><link>http://www.dodochen.com/post/27.html</link><pubDate>Wed, 04 Mar 2009 12:13:30 +0800</pubDate><guid>http://www.dodochen.com/post/27.html</guid><description><![CDATA[<p>&nbsp;<embed menu="true" width="550" height="400" loop="true" play="true" type="application/x-shockwave-flash" src="http://www.dodochen.com/upload/2009/3/noise.swf"></embed>&nbsp;<br />大致3步</p><p>1：&nbsp; <font size="2"><font face="Courier New"><font color="#3399ff">new</font><font color="#333333"> ModifierStack(</font><font color="#3399ff">new</font><font color="#333333"> LibraryPv3d(), plane);<br />2： mstack.addModifier(noise);<br />3：&nbsp;mstack.<font color="#3399ff">apply</font>();<br />文档类如下，配置好类库后只需要在库中建立一个Mc链接</font></font></font></p><ol>    <li><font face="Courier New" color="#3399ff" size="2">package</font></li>    <li><font face="Courier New" color="#333333" size="2">{</font></li>    <li><font face="Courier New" color="#333333" size="2"><font color="#3399ff">import</font> com.as3dmod.ModifierStack;</font></li>    <li><font face="Courier New" color="#333333" size="2"><font color="#3399ff">import</font> com.as3dmod.plugins.pv3d.LibraryPv3d;</font></li>    <li><font face="Courier New" color="#ff9900" size="2">//这里我们是演示PV3D的所以导入PV3D插件库</font></li>    <li><font face="Courier New" color="#333333" size="2"><font color="#3399ff">import</font> com.as3dmod.modifiers.Noise;</font></li>    <li><font face="Courier New" color="#ff9900" size="2">//我们先来运用一个澡波</font></li>    <li><font face="Courier New" color="#333333" size="2"><font color="#3399ff">import</font> org.papervision3d.cameras.CameraType;</font></li>    <li><font face="Courier New" color="#333333" size="2"><font color="#3399ff">import</font> org.papervision3d.materials.MovieMaterial;<font color="#ff9900">//贴图采用库中MC</font></font></li>    <li><font face="Courier New" color="#333333" size="2"><font color="#3399ff">import</font> org.papervision3d.objects.primitives.Plane;</font></li>    <li><font face="Courier New" color="#333333" size="2"><font color="#3399ff">import</font> org.papervision3d.view.BasicView;</font></li>    <li><font face="Courier New" color="#333333" size="2"><font color="#3399ff">import</font> org.papervision3d.view.layer.ViewportLayer;</font></li>    <li>&nbsp;</li>    <li><font face="Courier New" color="#333333" size="2"><font color="#3399ff">import</font> <font color="#3399ff">flash</font>.events.<font color="#3399ff">Event</font>;</font></li>    <li><font face="Courier New" color="#333333" size="2"><font color="#3399ff">import</font> <font color="#3399ff">flash</font>.<font color="#3399ff">filters</font>.<font color="#3399ff">DropShadowFilter</font>;</font></li>    <li>&nbsp;</li>    <li><font face="Courier New" color="#333333" size="2"><font color="#3399ff">public</font> <font color="#3399ff">class</font> MainWaft3DPlane <font color="#3399ff">extends</font> BasicView</font></li>    <li><font face="Courier New" color="#333333" size="2">{</font></li>    <li>&nbsp;</li>    <li><font face="Courier New" color="#333333" size="2"><font color="#3399ff">private</font> <font color="#3399ff">var</font> plane:Plane;</font></li>    <li><font face="Courier New" color="#333333" size="2"><font color="#3399ff">private</font> <font color="#3399ff">var</font> mstack:ModifierStack;<font color="#ff9900">//核心堆栈</font></font></li>    <li>&nbsp;</li>    <li>&nbsp;</li>    <li><font face="Courier New" color="#333333" size="2"><font color="#3399ff">public</font> <font color="#3399ff">function</font> MainWaft3DPlane()</font></li>    <li><font face="Courier New" color="#333333" size="2">{</font></li>    <li><font face="Courier New" color="#333333" size="2">&nbsp;&nbsp;<font color="#3399ff">super</font>(550, 400, <font color="#3399ff">true</font>, <font color="#3399ff">false</font>, CameraType.FREE);</font></li>    <li>&nbsp;</li>    <li><font face="Courier New" color="#333333" size="2">&nbsp;&nbsp;<font color="#3399ff">var</font> mat:MovieMaterial=<font color="#3399ff">new</font> MovieMaterial(<font color="#3399ff">new</font> Mc(),<font color="#3399ff">false</font>,<font color="#3399ff">true</font>);</font></li>    <li><font face="Courier New" color="#333333" size="2">&nbsp;&nbsp;mat.doubleSided=<font color="#3399ff">true</font>;</font></li>    <li><font face="Courier New" color="#333333" size="2">&nbsp;&nbsp;plane=<font color="#3399ff">new</font> Plane(mat,285,400,4,4);<font color="#ff9900">//建议切面尽量小</font></font></li>    <li><font face="Courier New" color="#333333" size="2">&nbsp;&nbsp;scene.<font color="#3399ff">addChild</font>(plane);</font></li>    <li><font face="Courier New" color="#333333" size="2">&nbsp;&nbsp;&nbsp;&nbsp;camera.moveForward(450);</font></li>    <li><font face="Courier New" color="#333333" size="2">&nbsp;&nbsp;viewport.getChildLayer(plane).<font color="#3399ff">filters</font>=[<font color="#3399ff">new</font> <font color="#3399ff">DropShadowFilter</font>(4.0,45,0x333333)];</font></li>    <li><font face="Courier New" color="#333333" size="2">&nbsp;&nbsp;&nbsp;&nbsp;<font color="#ff9900">//添加阴影</font></font></li>    <li><font face="Courier New" color="#333333" size="2">&nbsp;&nbsp;mstack = <font color="#3399ff">new</font> ModifierStack(<font color="#3399ff">new</font> LibraryPv3d(), plane);</font></li>    <li><font face="Courier New" color="#333333" size="2">&nbsp;&nbsp;&nbsp;&nbsp;<font color="#ff9900">//ModifierStack(lib3d:Library3d, mesh:*)；把这个ModifierStack和PV3D 以及其plane捆绑</font></font></li>    <li>&nbsp;</li>    <li><font face="Courier New" color="#333333" size="2">&nbsp;&nbsp;&nbsp;&nbsp;<font color="#3399ff">var</font> <font color="#3399ff">noise</font>:Noise = <font color="#3399ff">new</font> Noise(20);</font></li>    <li><font face="Courier New" color="#333333" size="2">&nbsp;&nbsp;&nbsp;&nbsp;mstack.addModifier(<font color="#3399ff">noise</font>);</font></li>    <li><font face="Courier New" color="#333333" size="2">&nbsp;&nbsp;&nbsp;&nbsp;<font color="#ff9900">//添加澡波</font></font></li>    <li><font face="Courier New" color="#333333" size="2">&nbsp;&nbsp;startRendering();</font></li>    <li>&nbsp;</li>    <li><font face="Courier New" color="#333333" size="2">}</font></li>    <li>&nbsp;</li>    <li><font face="Courier New" color="#333333" size="2"><font color="#3399ff">protected</font> <font color="#3399ff">override</font> <font color="#3399ff">function</font> onRenderTick(event:<font color="#3399ff">Event</font> = <font color="#3399ff">null</font>):<font color="#3399ff">void</font></font></li>    <li><font face="Courier New" color="#333333" size="2">{</font></li>    <li><font face="Courier New" color="#333333" size="2">&nbsp;&nbsp;mstack.<font color="#3399ff">apply</font>();<font color="#ff9900">//最后一步实施渲染</font></font></li>    <li><font face="Courier New" color="#333333" size="2">&nbsp;&nbsp;<font color="#3399ff">super</font>.onRenderTick(event);</font></li>    <li><font face="Courier New" color="#333333" size="2">}</font></li>    <li><font face="Courier New" color="#333333" size="2">}</font></li>    <li><font face="Courier New" color="#333333" size="2">}</font></li></ol><p>&nbsp;</p><p>&nbsp;</p>]]></description><category>AS3Dmod</category><comments>http://www.dodochen.com/post/27.html#comment</comments><wfw:comment>http://www.dodochen.com/</wfw:comment><wfw:commentRss>http://www.dodochen.com/feed.asp?cmt=27</wfw:commentRss><trackback:ping>http://www.dodochen.com/cmd.asp?act=tb&amp;id=27&amp;key=65f2e6fe</trackback:ping></item><item><title>AS3Dmod之什么是as3dmod？</title><author>sstpc@163.com (jacky)</author><link>http://www.dodochen.com/post/26.html</link><pubDate>Wed, 04 Mar 2009 11:45:21 +0800</pubDate><guid>http://www.dodochen.com/post/26.html</guid><description><![CDATA[<p>AS3Dmod学习笔记开始：<br />第一节：初识3dmod</p><p>通俗点讲这是个专门为flash3d量身定做的 使三维物体产生扭曲和形变的类库<br />首先AS3Dmod其中有个团队成员叫MAKC，他参与了一些开源项目，最显著的是Sandy3D;<br />其次AS3Dmod支持跨引擎平台，目前AS3Dmod 支持<a href="http://blog.papervision3d.org/"><font color="#a00004">Papervision3d</font></a>, <a href="http://www.away3d.com/"><font color="#a00004">Away3d</font></a>, <a href="http://www.sandy3d.com/"><font color="#a00004">Sandy3d </font></a>和 <a href="http://alternativaplatform.com/en/"><font color="#a00004">Alternativa3d</font></a> 多种3D 引擎。<br />有了它，能让你的3D表现力更富有了。给3D世界加入扭曲，波动，产生扭动动画。<br />一张纸，一个带，一个挥舞着国旗，水，布，树木，蝴蝶，一个鸟翼.. 所有这些都可以通过此类库得以用AS来实现了<br />因此它有以下几个3D修饰语Noise澡波 Bend扭曲 &nbsp;Phase动画相关 Perlin产生水波的<br />可以在这里下载到最新的AS3Dmod类库:<br /><a href="http://code.google.com/p/as3dmod/source/browse/trunk"><font color="#a00004">http://code.google.com/p/as3dmod/source/browse/trunk</font></a> <br />svn地址是:<br /><a href="http://as3dmod.googlecode.com/svn/trunk">http://as3dmod.googlecode.com/svn/trunk</a><br />另外本人独家提供其API地址：<br /><a href="http://www.everydayflash.com/flash/as3dmod/doc/3dmod">http://www.everydayflash.com/flash/as3dmod/doc/3dmod</a></p>]]></description><category>AS3Dmod</category><comments>http://www.dodochen.com/post/26.html#comment</comments><wfw:comment>http://www.dodochen.com/</wfw:comment><wfw:commentRss>http://www.dodochen.com/feed.asp?cmt=26</wfw:commentRss><trackback:ping>http://www.dodochen.com/cmd.asp?act=tb&amp;id=26&amp;key=0064d736</trackback:ping></item></channel></rss>
