<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_地球娃</title><subtitle type="text">知人者智,自知者明,胜人者力,自胜者强</subtitle><id>http://feed.cnblogs.com/blog/u/66298/rss</id><updated>2011-12-31T03:11:47Z</updated><author><name>bigbigdotnet</name><uri>http://www.cnblogs.com/bigbigdotnet/</uri></author><generator>feed.cnblogs.com</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/bigbigdotnet/"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/66298/rss"/><entry><id>http://www.cnblogs.com/bigbigdotnet/archive/2010/12/30/1922595.html</id><title type="text">actionscript3.0简单粒子效果</title><summary type="text">   从天地会论坛的MoonSpirit师兄那里学来了用actionscript3.0中的BitmapData粒子实现一个简单的图片演示效果。 particleVO.as: Main.as: 代码下载:http://files.cnblogs.com/bigbigdotnet/particle.rar</summary><published>2010-12-30T15:23:00Z</published><updated>2010-12-30T15:23:00Z</updated><author><name>bigbigdotnet</name><uri>http://www.cnblogs.com/bigbigdotnet/</uri></author><link rel="alternate" href="http://www.cnblogs.com/bigbigdotnet/archive/2010/12/30/1922595.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/bigbigdotnet/archive/2010/12/30/1922595.html"/><content type="html">&lt;div class="csharpcode"&gt;&amp;#160;&lt;/div&gt;  &lt;p&gt;&lt;object id="Main" codebase="http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="800" height="600"&gt; &lt;param name="movie" value="http://files.cnblogs.com/bigbigdotnet/particle2.swf" /&gt; &lt;param name="quality" value="high" /&gt; &lt;param name="bgcolor" value="#869ca7" /&gt; &lt;param name="allowScriptAccess" value="sameDomain" /&gt;    &lt;embed src="http://files.cnblogs.com/bigbigdotnet/particle2.swf" quality="high" bgcolor="#869ca7" width="800" height="600" name="Main" align="center" play="true" loop="false" quality="high" allowscriptaccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.adobe.com/go/getflashplayer"&gt;    &lt;/embed&gt;  &lt;/object&gt;&lt;/p&gt;  &lt;div class="csharpcode"&gt;&amp;#160;&lt;/div&gt;  &lt;div class="csharpcode"&gt;从天地会论坛的MoonSpirit师兄那里学来了用actionscript3.0中的BitmapData粒子实现一个简单的图片演示效果。&lt;/div&gt;  &lt;p&gt;particleVO.as:&lt;/p&gt;  &lt;div class="csharpcode"&gt;   &lt;span class="lnum"&gt;   1:  &lt;/span&gt;package com.helloshp.vo  &lt;span class="lnum"&gt;   2:  &lt;/span&gt;{  &lt;span class="lnum"&gt;   3:  &lt;/span&gt;    import flash.display.BitmapData;  &lt;span class="lnum"&gt;   4:  &lt;/span&gt;&amp;#160;  &lt;span class="lnum"&gt;   5:  &lt;/span&gt;    &lt;span class="rem"&gt;//粒子对象属性&lt;/span&gt;  &lt;span class="lnum"&gt;   6:  &lt;/span&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; ParticleVO  &lt;span class="lnum"&gt;   7:  &lt;/span&gt;    {  &lt;span class="lnum"&gt;   8:  &lt;/span&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; var bmd:BitmapData;&lt;span class="rem"&gt;//用来装载切图&lt;/span&gt;  &lt;span class="lnum"&gt;   9:  &lt;/span&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; var crtPosX:Number;&lt;span class="rem"&gt;//该粒子对象当前出现在舞台的X位置&lt;/span&gt;  &lt;span class="lnum"&gt;  10:  &lt;/span&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; var crtPosY:Number;&lt;span class="rem"&gt;//该粒子对象当前出现在舞台的Y位置&lt;/span&gt;  &lt;span class="lnum"&gt;  11:  &lt;/span&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; var tragetX:Number;&lt;span class="rem"&gt;//该粒子最后要运动到的舞台的X位置&lt;/span&gt;  &lt;span class="lnum"&gt;  12:  &lt;/span&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; var tragetY:Number;&lt;span class="rem"&gt;//该粒子最后要运动到的舞台的Y位置&lt;/span&gt;  &lt;span class="lnum"&gt;  13:  &lt;/span&gt;    }  &lt;span class="lnum"&gt;  14:  &lt;/span&gt;}&lt;/div&gt;&lt;p&gt;&lt;style type="text/css"&gt;.csharpcode, .csharpcode pre{font-size: small;color: black;font-family: consolas, "Courier New", courier, monospace;background-color: #ffffff;/*white-space: pre;*/}.csharpcode pre { margin: 0em; }.csharpcode .rem { color: #008000; }.csharpcode .kwrd { color: #0000ff; }.csharpcode .str { color: #006080; }.csharpcode .op { color: #0000c0; }.csharpcode .preproc { color: #cc6633; }.csharpcode .asp { background-color: #ffff00; }.csharpcode .html { color: #800000; }.csharpcode .attr { color: #ff0000; }.csharpcode .alt {background-color: #f4f4f4;width: 100%;margin: 0em;}.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;/p&gt;&lt;p&gt;Main.as:&lt;/p&gt;&lt;div class="csharpcode"&gt;  &lt;span class="lnum"&gt;   1:  &lt;/span&gt;package  &lt;span class="lnum"&gt;   2:  &lt;/span&gt;{  &lt;span class="lnum"&gt;   3:  &lt;/span&gt;    import com.helloshp.vo.ParticleVO;  &lt;span class="lnum"&gt;   4:  &lt;/span&gt;      &lt;span class="lnum"&gt;   5:  &lt;/span&gt;    import flash.display.Bitmap;  &lt;span class="lnum"&gt;   6:  &lt;/span&gt;    import flash.display.BitmapData;  &lt;span class="lnum"&gt;   7:  &lt;/span&gt;    import flash.display.Sprite;  &lt;span class="lnum"&gt;   8:  &lt;/span&gt;    import flash.events.Event;  &lt;span class="lnum"&gt;   9:  &lt;/span&gt;    import flash.events.MouseEvent;  &lt;span class="lnum"&gt;  10:  &lt;/span&gt;    import flash.events.TimerEvent;  &lt;span class="lnum"&gt;  11:  &lt;/span&gt;    import flash.geom.Point;  &lt;span class="lnum"&gt;  12:  &lt;/span&gt;    import flash.geom.Rectangle;  &lt;span class="lnum"&gt;  13:  &lt;/span&gt;    import flash.utils.Timer;  &lt;span class="lnum"&gt;  14:  &lt;/span&gt;      &lt;span class="lnum"&gt;  15:  &lt;/span&gt;    [SWF(width=&lt;span class="str"&gt;&amp;quot;800&amp;quot;&lt;/span&gt;,height=&lt;span class="str"&gt;&amp;quot;600&amp;quot;&lt;/span&gt;)]  &lt;span class="lnum"&gt;  16:  &lt;/span&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; Main extends Sprite  &lt;span class="lnum"&gt;  17:  &lt;/span&gt;    {  &lt;span class="lnum"&gt;  18:  &lt;/span&gt;        [Embed(source=&lt;span class="str"&gt;&amp;quot;assets/imgTest0.jpg&amp;quot;&lt;/span&gt;)]  &lt;span class="lnum"&gt;  19:  &lt;/span&gt;        &lt;span class="kwrd"&gt;private&lt;/span&gt; var imgTest0:Class;  &lt;span class="lnum"&gt;  20:  &lt;/span&gt;        [Embed(source=&lt;span class="str"&gt;&amp;quot;assets/imgTest1.jpg&amp;quot;&lt;/span&gt;)]  &lt;span class="lnum"&gt;  21:  &lt;/span&gt;        &lt;span class="kwrd"&gt;private&lt;/span&gt; var imgTest1:Class;          &lt;span class="lnum"&gt;  22:  &lt;/span&gt;        [Embed(source=&lt;span class="str"&gt;&amp;quot;assets/imgTest2.jpg&amp;quot;&lt;/span&gt;)]  &lt;span class="lnum"&gt;  23:  &lt;/span&gt;        &lt;span class="kwrd"&gt;private&lt;/span&gt; var imgTest2:Class;  &lt;span class="lnum"&gt;  24:  &lt;/span&gt;        [Embed(source=&lt;span class="str"&gt;&amp;quot;assets/imgTest3.jpg&amp;quot;&lt;/span&gt;)]  &lt;span class="lnum"&gt;  25:  &lt;/span&gt;        &lt;span class="kwrd"&gt;private&lt;/span&gt; var imgTest3:Class;  &lt;span class="lnum"&gt;  26:  &lt;/span&gt;        [Embed(source=&lt;span class="str"&gt;&amp;quot;assets/imgTest4.jpg&amp;quot;&lt;/span&gt;)]  &lt;span class="lnum"&gt;  27:  &lt;/span&gt;        &lt;span class="kwrd"&gt;private&lt;/span&gt; var imgTest4:Class;          &lt;span class="lnum"&gt;  28:  &lt;/span&gt;          &lt;span class="lnum"&gt;  29:  &lt;/span&gt;        &lt;span class="kwrd"&gt;private&lt;/span&gt; var bmpimgTest:Bitmap;          &lt;span class="lnum"&gt;  30:  &lt;/span&gt;        &lt;span class="kwrd"&gt;private&lt;/span&gt; var bmp:Bitmap;  &lt;span class="lnum"&gt;  31:  &lt;/span&gt;        &lt;span class="kwrd"&gt;private&lt;/span&gt; var bmd:BitmapData;          &lt;span class="lnum"&gt;  32:  &lt;/span&gt;        &lt;span class="kwrd"&gt;private&lt;/span&gt; var particleVOList:Array;  &lt;span class="lnum"&gt;  33:  &lt;/span&gt;        &lt;span class="kwrd"&gt;private&lt;/span&gt; var currentIndex:&lt;span class="kwrd"&gt;int&lt;/span&gt;;  &lt;span class="lnum"&gt;  34:  &lt;/span&gt;        &lt;span class="kwrd"&gt;private&lt;/span&gt; var isStop:Boolean;  &lt;span class="lnum"&gt;  35:  &lt;/span&gt;        &lt;span class="kwrd"&gt;private&lt;/span&gt; var timer:Timer;  &lt;span class="lnum"&gt;  36:  &lt;/span&gt;          &lt;span class="lnum"&gt;  37:  &lt;/span&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; function Main()  &lt;span class="lnum"&gt;  38:  &lt;/span&gt;        {  &lt;span class="lnum"&gt;  39:  &lt;/span&gt;            init();  &lt;span class="lnum"&gt;  40:  &lt;/span&gt;        }  &lt;span class="lnum"&gt;  41:  &lt;/span&gt;          &lt;span class="lnum"&gt;  42:  &lt;/span&gt;        &lt;span class="kwrd"&gt;private&lt;/span&gt; function init():&lt;span class="kwrd"&gt;void&lt;/span&gt;{          &lt;span class="lnum"&gt;  43:  &lt;/span&gt;            initData();  &lt;span class="lnum"&gt;  44:  &lt;/span&gt;            addEventListener(Event.ENTER_FRAME,efHandler);  &lt;span class="lnum"&gt;  45:  &lt;/span&gt;            stage.addEventListener(MouseEvent.CLICK,clickHandler);  &lt;span class="lnum"&gt;  46:  &lt;/span&gt;            timer = &lt;span class="kwrd"&gt;new&lt;/span&gt; Timer(3500);  &lt;span class="lnum"&gt;  47:  &lt;/span&gt;            timer.addEventListener(TimerEvent.TIMER,timerHandler);  &lt;span class="lnum"&gt;  48:  &lt;/span&gt;            timer.start();  &lt;span class="lnum"&gt;  49:  &lt;/span&gt;        }  &lt;span class="lnum"&gt;  50:  &lt;/span&gt;          &lt;span class="lnum"&gt;  51:  &lt;/span&gt;        &lt;span class="kwrd"&gt;private&lt;/span&gt; function initData():&lt;span class="kwrd"&gt;void&lt;/span&gt;{  &lt;span class="lnum"&gt;  52:  &lt;/span&gt;            &lt;span class="rem"&gt;//清除舞台所以的可视对象&lt;/span&gt;  &lt;span class="lnum"&gt;  53:  &lt;/span&gt;            &lt;span class="kwrd"&gt;for&lt;/span&gt;(;&lt;span class="kwrd"&gt;this&lt;/span&gt;.numChildren&amp;gt;0;){  &lt;span class="lnum"&gt;  54:  &lt;/span&gt;                &lt;span class="kwrd"&gt;this&lt;/span&gt;.removeChildAt(0);  &lt;span class="lnum"&gt;  55:  &lt;/span&gt;            }  &lt;span class="lnum"&gt;  56:  &lt;/span&gt;                  &lt;span class="lnum"&gt;  57:  &lt;/span&gt;            &lt;span class="rem"&gt;//实例化用于创建粒子对象的数组&lt;/span&gt;  &lt;span class="lnum"&gt;  58:  &lt;/span&gt;            particleVOList = &lt;span class="kwrd"&gt;new&lt;/span&gt; Array();  &lt;span class="lnum"&gt;  59:  &lt;/span&gt;            &lt;span class="rem"&gt;//把即将要切片的imgTest.jpg图片装载到一个Bitmap视图容器里面&lt;/span&gt;  &lt;span class="lnum"&gt;  60:  &lt;/span&gt;            bmpimgTest = getImg( currentIndex );          &lt;span class="lnum"&gt;  61:  &lt;/span&gt;            &lt;span class="rem"&gt;//实例化待加载切图的画布&lt;/span&gt;  &lt;span class="lnum"&gt;  62:  &lt;/span&gt;            bmd = &lt;span class="kwrd"&gt;new&lt;/span&gt; BitmapData(800,600,&lt;span class="kwrd"&gt;true&lt;/span&gt;,0);  &lt;span class="lnum"&gt;  63:  &lt;/span&gt;            &lt;span class="rem"&gt;//把画布加载到显示容器里面去,等哈儿显示所有的粒子对象用&lt;/span&gt;  &lt;span class="lnum"&gt;  64:  &lt;/span&gt;            bmp = &lt;span class="kwrd"&gt;new&lt;/span&gt; Bitmap( bmd );  &lt;span class="lnum"&gt;  65:  &lt;/span&gt;            &lt;span class="rem"&gt;//把显示容器加载到舞台&lt;/span&gt;  &lt;span class="lnum"&gt;  66:  &lt;/span&gt;            addChild(bmp);  &lt;span class="lnum"&gt;  67:  &lt;/span&gt;            &lt;span class="rem"&gt;//初始化粒子对象&lt;/span&gt;  &lt;span class="lnum"&gt;  68:  &lt;/span&gt;            initParticleVO();  &lt;span class="lnum"&gt;  69:  &lt;/span&gt;        }  &lt;span class="lnum"&gt;  70:  &lt;/span&gt;          &lt;span class="lnum"&gt;  71:  &lt;/span&gt;        &lt;span class="kwrd"&gt;private&lt;/span&gt; function getImg(crtIndex:&lt;span class="kwrd"&gt;int&lt;/span&gt;):Bitmap{  &lt;span class="lnum"&gt;  72:  &lt;/span&gt;            &lt;span class="kwrd"&gt;switch&lt;/span&gt;(crtIndex){      &lt;span class="lnum"&gt;  73:  &lt;/span&gt;                &lt;span class="kwrd"&gt;case&lt;/span&gt; 0:  &lt;span class="lnum"&gt;  74:  &lt;/span&gt;                    &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;new&lt;/span&gt; imgTest0();  &lt;span class="lnum"&gt;  75:  &lt;/span&gt;                    &lt;span class="kwrd"&gt;break&lt;/span&gt;;  &lt;span class="lnum"&gt;  76:  &lt;/span&gt;                &lt;span class="kwrd"&gt;case&lt;/span&gt; 1:  &lt;span class="lnum"&gt;  77:  &lt;/span&gt;                    &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;new&lt;/span&gt; imgTest1();  &lt;span class="lnum"&gt;  78:  &lt;/span&gt;                    &lt;span class="kwrd"&gt;break&lt;/span&gt;;  &lt;span class="lnum"&gt;  79:  &lt;/span&gt;                &lt;span class="kwrd"&gt;case&lt;/span&gt; 2:  &lt;span class="lnum"&gt;  80:  &lt;/span&gt;                    &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;new&lt;/span&gt; imgTest2();  &lt;span class="lnum"&gt;  81:  &lt;/span&gt;                    &lt;span class="kwrd"&gt;break&lt;/span&gt;;  &lt;span class="lnum"&gt;  82:  &lt;/span&gt;                &lt;span class="kwrd"&gt;case&lt;/span&gt; 3:  &lt;span class="lnum"&gt;  83:  &lt;/span&gt;                    &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;new&lt;/span&gt; imgTest3();  &lt;span class="lnum"&gt;  84:  &lt;/span&gt;                    &lt;span class="kwrd"&gt;break&lt;/span&gt;;  &lt;span class="lnum"&gt;  85:  &lt;/span&gt;                &lt;span class="kwrd"&gt;case&lt;/span&gt; 4:  &lt;span class="lnum"&gt;  86:  &lt;/span&gt;                    &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;new&lt;/span&gt; imgTest4();  &lt;span class="lnum"&gt;  87:  &lt;/span&gt;                    &lt;span class="kwrd"&gt;break&lt;/span&gt;;              &lt;span class="lnum"&gt;  88:  &lt;/span&gt;                &lt;span class="kwrd"&gt;default&lt;/span&gt;:  &lt;span class="lnum"&gt;  89:  &lt;/span&gt;                    &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;new&lt;/span&gt; imgTest0();  &lt;span class="lnum"&gt;  90:  &lt;/span&gt;                    &lt;span class="kwrd"&gt;break&lt;/span&gt;;  &lt;span class="lnum"&gt;  91:  &lt;/span&gt;            }  &lt;span class="lnum"&gt;  92:  &lt;/span&gt;              &lt;span class="lnum"&gt;  93:  &lt;/span&gt;        }              &lt;span class="lnum"&gt;  94:  &lt;/span&gt;          &lt;span class="lnum"&gt;  95:  &lt;/span&gt;        &lt;span class="rem"&gt;//当鼠标点击后，暂停或者继续播放&lt;/span&gt;  &lt;span class="lnum"&gt;  96:  &lt;/span&gt;        &lt;span class="kwrd"&gt;private&lt;/span&gt; function clickHandler(e:MouseEvent):&lt;span class="kwrd"&gt;void&lt;/span&gt;{          &lt;span class="lnum"&gt;  97:  &lt;/span&gt;            isStop = isStop?&lt;span class="kwrd"&gt;false&lt;/span&gt;:&lt;span class="kwrd"&gt;true&lt;/span&gt;;              &lt;span class="lnum"&gt;  98:  &lt;/span&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt;(isStop){  &lt;span class="lnum"&gt;  99:  &lt;/span&gt;                timer.stop();  &lt;span class="lnum"&gt; 100:  &lt;/span&gt;            }  &lt;span class="lnum"&gt; 101:  &lt;/span&gt;            &lt;span class="kwrd"&gt;else&lt;/span&gt;{  &lt;span class="lnum"&gt; 102:  &lt;/span&gt;                timer.reset();  &lt;span class="lnum"&gt; 103:  &lt;/span&gt;                timer.start();                  &lt;span class="lnum"&gt; 104:  &lt;/span&gt;            }  &lt;span class="lnum"&gt; 105:  &lt;/span&gt;              &lt;span class="lnum"&gt; 106:  &lt;/span&gt;        }  &lt;span class="lnum"&gt; 107:  &lt;/span&gt;          &lt;span class="lnum"&gt; 108:  &lt;/span&gt;        &lt;span class="rem"&gt;//初始化所有的粒子对象，每个粒子对象其实就是把加载的testImg图片，通过2重循环切成一个一个的bitmapData，&lt;/span&gt;  &lt;span class="lnum"&gt; 109:  &lt;/span&gt;        &lt;span class="rem"&gt;//并设置每个粒子对象的当前坐标(待会儿舞台显示出现的位置)，目标坐标(就是粒子对象要移动到的位置)，并存放到数组。&lt;/span&gt;  &lt;span class="lnum"&gt; 110:  &lt;/span&gt;        &lt;span class="rem"&gt;//通过2重循环切testImg图的时候关键是,新建立一个尺寸10 X 10 大小的bitmapData对象，然后通过它的copyPixels()方法去切加载的图片。&lt;/span&gt;  &lt;span class="lnum"&gt; 111:  &lt;/span&gt;        &lt;span class="rem"&gt;//copyPixels(),的参数1: 就是要切的图片对象的bitmapData，参数2: 创建一个要切的那一个方块对象,该方块对象的x,y坐标就是该方块最终要放置到舞台上的坐标&lt;/span&gt;  &lt;span class="lnum"&gt; 112:  &lt;/span&gt;        &lt;span class="rem"&gt;//参数3：切图的坐标点，默认设置为原点。        &lt;/span&gt;  &lt;span class="lnum"&gt; 113:  &lt;/span&gt;        &lt;span class="kwrd"&gt;private&lt;/span&gt; function initParticleVO():&lt;span class="kwrd"&gt;void&lt;/span&gt;{  &lt;span class="lnum"&gt; 114:  &lt;/span&gt;            &lt;span class="rem"&gt;//行数为50行，因为每次切图的高就是10像素，60*10=600,刚好就是我的图片的高            &lt;/span&gt;  &lt;span class="lnum"&gt; 115:  &lt;/span&gt;            &lt;span class="kwrd"&gt;for&lt;/span&gt;( var row:&lt;span class="kwrd"&gt;int&lt;/span&gt;=0;row&amp;lt;60;row++ ){  &lt;span class="lnum"&gt; 116:  &lt;/span&gt;                &lt;span class="rem"&gt;//宽度为80行，因为每次切图的宽就是10像素，80*10=800,刚好就是我的图片的宽&lt;/span&gt;  &lt;span class="lnum"&gt; 117:  &lt;/span&gt;                &lt;span class="kwrd"&gt;for&lt;/span&gt;(var col:&lt;span class="kwrd"&gt;int&lt;/span&gt;=0;col&amp;lt;80;col++){  &lt;span class="lnum"&gt; 118:  &lt;/span&gt;                    &lt;span class="rem"&gt;//初始化每一个粒子VO&lt;/span&gt;  &lt;span class="lnum"&gt; 119:  &lt;/span&gt;                    var pvo:ParticleVO = &lt;span class="kwrd"&gt;new&lt;/span&gt; ParticleVO();                      &lt;span class="lnum"&gt; 120:  &lt;/span&gt;                    pvo.tragetX = col * 10;&lt;span class="rem"&gt;//粒子目标X坐标(就是粒子对象最终要移动到的X位置)&lt;/span&gt;  &lt;span class="lnum"&gt; 121:  &lt;/span&gt;                    pvo.tragetY = row * 10;&lt;span class="rem"&gt;//粒子目标Y坐标(就是粒子对象最终要移动到的Y位置)                    &lt;/span&gt;  &lt;span class="lnum"&gt; 122:  &lt;/span&gt;                    pvo.crtPosX = col * 10 + Math.random() * 1000; &lt;span class="rem"&gt;//粒子在舞台显示的X位置.通过随机数打乱初始位置&lt;/span&gt;  &lt;span class="lnum"&gt; 123:  &lt;/span&gt;                    pvo.crtPosY = row * 10 + Math.random() * 1000;&lt;span class="rem"&gt;//粒子在舞台显示的Y位置,通过随机数打乱初始位置&lt;/span&gt;  &lt;span class="lnum"&gt; 124:  &lt;/span&gt;                    pvo.bmd = &lt;span class="kwrd"&gt;new&lt;/span&gt; BitmapData(10,10,&lt;span class="kwrd"&gt;true&lt;/span&gt;,0);&lt;span class="rem"&gt;//创建一个空白的画布&lt;/span&gt;  &lt;span class="lnum"&gt; 125:  &lt;/span&gt;                    &lt;span class="rem"&gt;//关键代码，就是切图操作&lt;/span&gt;  &lt;span class="lnum"&gt; 126:  &lt;/span&gt;                    pvo.bmd.copyPixels( bmpimgTest.bitmapData,&lt;span class="kwrd"&gt;new&lt;/span&gt; Rectangle(pvo.tragetX,pvo.tragetY,10,10),&lt;span class="kwrd"&gt;new&lt;/span&gt; Point() );  &lt;span class="lnum"&gt; 127:  &lt;/span&gt;                    &lt;span class="rem"&gt;//把每个切出来的图，装载到一个数组里面(等哈儿再渲染到舞台上出来)&lt;/span&gt;  &lt;span class="lnum"&gt; 128:  &lt;/span&gt;                    particleVOList.push( pvo );                      &lt;span class="lnum"&gt; 129:  &lt;/span&gt;                }  &lt;span class="lnum"&gt; 130:  &lt;/span&gt;            }  &lt;span class="lnum"&gt; 131:  &lt;/span&gt;        }  &lt;span class="lnum"&gt; 132:  &lt;/span&gt;          &lt;span class="lnum"&gt; 133:  &lt;/span&gt;        &lt;span class="kwrd"&gt;private&lt;/span&gt; function efHandler(e:Event):&lt;span class="kwrd"&gt;void&lt;/span&gt;{          &lt;span class="lnum"&gt; 134:  &lt;/span&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt;(isStop) &lt;span class="kwrd"&gt;return&lt;/span&gt;;  &lt;span class="lnum"&gt; 135:  &lt;/span&gt;            &lt;span class="rem"&gt;//bmd.lock()&lt;/span&gt;  &lt;span class="lnum"&gt; 136:  &lt;/span&gt;            &lt;span class="rem"&gt;//创建一个800 X 600 的空白的画布&lt;/span&gt;  &lt;span class="lnum"&gt; 137:  &lt;/span&gt;            bmd = &lt;span class="kwrd"&gt;new&lt;/span&gt; BitmapData(800,600,&lt;span class="kwrd"&gt;true&lt;/span&gt;,0);  &lt;span class="lnum"&gt; 138:  &lt;/span&gt;            &lt;span class="rem"&gt;//循环取出每一个刚刚切好的图片，然后再转载到画布里面&lt;/span&gt;  &lt;span class="lnum"&gt; 139:  &lt;/span&gt;            &lt;span class="kwrd"&gt;for&lt;/span&gt;(var i:&lt;span class="kwrd"&gt;int&lt;/span&gt;=0;i&amp;lt;particleVOList.length;i++){      &lt;span class="lnum"&gt; 140:  &lt;/span&gt;                var pvo:ParticleVO = particleVOList[i];      &lt;span class="lnum"&gt; 141:  &lt;/span&gt;                pvo.crtPosX += ( pvo.tragetX - pvo.crtPosX ) / ( 2 + Math.random() * 20 );&lt;span class="rem"&gt;//X轴缓动效果&lt;/span&gt;  &lt;span class="lnum"&gt; 142:  &lt;/span&gt;                pvo.crtPosY += ( pvo.tragetY - pvo.crtPosY ) / ( 2 + Math.random() * 20) ;&lt;span class="rem"&gt;//Y轴缓动效果&lt;/span&gt;  &lt;span class="lnum"&gt; 143:  &lt;/span&gt;                &lt;span class="rem"&gt;//关键代码，把数组里面装的每一个小的切图，装载到800 X 600 的大的画布里面去。装载的时候，都是按照粒子对象对应的X,Y坐标装载的。&lt;/span&gt;  &lt;span class="lnum"&gt; 144:  &lt;/span&gt;                bmd.copyPixels( pvo.bmd, &lt;span class="kwrd"&gt;new&lt;/span&gt; Rectangle(0,0,10,10 ),&lt;span class="kwrd"&gt;new&lt;/span&gt; Point(pvo.crtPosX,pvo.crtPosY) );  &lt;span class="lnum"&gt; 145:  &lt;/span&gt;            }  &lt;span class="lnum"&gt; 146:  &lt;/span&gt;            &lt;span class="rem"&gt;//把装载好的画布，赋值给显示对象，让可视对象bmp在舞台上渲染出图片出来&lt;/span&gt;  &lt;span class="lnum"&gt; 147:  &lt;/span&gt;            bmp.bitmapData = bmd;  &lt;span class="lnum"&gt; 148:  &lt;/span&gt;            &lt;span class="rem"&gt;//bmd.unlock();&lt;/span&gt;  &lt;span class="lnum"&gt; 149:  &lt;/span&gt;        }  &lt;span class="lnum"&gt; 150:  &lt;/span&gt;          &lt;span class="lnum"&gt; 151:  &lt;/span&gt;        &lt;span class="kwrd"&gt;private&lt;/span&gt; function timerHandler(e:TimerEvent):&lt;span class="kwrd"&gt;void&lt;/span&gt;{              &lt;span class="lnum"&gt; 152:  &lt;/span&gt;            currentIndex++;  &lt;span class="lnum"&gt; 153:  &lt;/span&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt;(currentIndex &amp;gt; 4 ){  &lt;span class="lnum"&gt; 154:  &lt;/span&gt;                currentIndex = 0;  &lt;span class="lnum"&gt; 155:  &lt;/span&gt;            }                  &lt;span class="lnum"&gt; 156:  &lt;/span&gt;            initData();  &lt;span class="lnum"&gt; 157:  &lt;/span&gt;        }  &lt;span class="lnum"&gt; 158:  &lt;/span&gt;    }  &lt;span class="lnum"&gt; 159:  &lt;/span&gt;}&lt;/div&gt;&lt;style type="text/css"&gt;.csharpcode, .csharpcode pre{font-size: small;color: black;font-family: consolas, "Courier New", courier, monospace;background-color: #ffffff;/*white-space: pre;*/}.csharpcode pre { margin: 0em; }.csharpcode .rem { color: #008000; }.csharpcode .kwrd { color: #0000ff; }.csharpcode .str { color: #006080; }.csharpcode .op { color: #0000c0; }.csharpcode .preproc { color: #cc6633; }.csharpcode .asp { background-color: #ffff00; }.csharpcode .html { color: #800000; }.csharpcode .attr { color: #ff0000; }.csharpcode .alt {background-color: #f4f4f4;width: 100%;margin: 0em;}.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;p&gt;代码下载:&lt;a title="http://files.cnblogs.com/bigbigdotnet/particle.rar" href="http://files.cnblogs.com/bigbigdotnet/particle.rar"&gt;http://files.cnblogs.com/bigbigdotnet/particle.rar&lt;/a&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/bigbigdotnet/aggbug/1922595.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/bigbigdotnet/archive/2010/12/30/1922595.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/bigbigdotnet/archive/2010/12/27/1918324.html</id><title type="text">as 的贪吃蛇</title><summary type="text">发一个actonscript3.0做的贪吃蛇，希望多多交流    源码：http://files.cnblogs.com/bigbigdotnet/snake.rar</summary><published>2010-12-27T13:53:00Z</published><updated>2010-12-27T13:53:00Z</updated><author><name>bigbigdotnet</name><uri>http://www.cnblogs.com/bigbigdotnet/</uri></author><link rel="alternate" href="http://www.cnblogs.com/bigbigdotnet/archive/2010/12/27/1918324.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/bigbigdotnet/archive/2010/12/27/1918324.html"/><content type="html">&lt;p&gt;发一个actonscript3.0做的贪吃蛇，希望多多交流&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;object id="Main" codebase="http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="500" height="550"&gt; &lt;param name="movie" value="http://files.cnblogs.com/bigbigdotnet/snake.swf" /&gt; &lt;param name="quality" value="high" /&gt; &lt;param name="bgcolor" value="#869ca7" /&gt; &lt;param name="allowScriptAccess" value="sameDomain" /&gt;    &lt;embed src="http://files.cnblogs.com/bigbigdotnet/snake.swf" quality="high" bgcolor="#869ca7" width="500" height="550" name="Main" align="center" play="true" loop="false" quality="high" allowscriptaccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.adobe.com/go/getflashplayer"&gt;    &lt;/embed&gt;  &lt;/object&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;源码：&lt;a title="http://files.cnblogs.com/bigbigdotnet/snake.rar" href="http://files.cnblogs.com/bigbigdotnet/snake.rar"&gt;http://files.cnblogs.com/bigbigdotnet/snake.rar&lt;/a&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/bigbigdotnet/aggbug/1918324.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/bigbigdotnet/archive/2010/12/27/1918324.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/bigbigdotnet/archive/2010/12/27/1918253.html</id><title type="text">actionscript 3.0 理解冒泡事件</title><summary type="text">关于冒泡事件的理解，主要有3个阶段： 1.捕获阶段，eventPhase的属性值1 2.目标阶段，eventPhase的属性值2 3.冒泡阶段，eventPhase的属性值3 以上为黑羽所著的《actionscript3殿堂之路》中描述为。让我们来看下面的例子： 比如点击以上倒数第3个容器，事件流过程如下图： 如果在点击容器C的事件里，让这次点击事件停止冒泡的话，拖拽这个容器的时候，这个容...</summary><published>2010-12-27T11:37:00Z</published><updated>2010-12-27T11:37:00Z</updated><author><name>bigbigdotnet</name><uri>http://www.cnblogs.com/bigbigdotnet/</uri></author><link rel="alternate" href="http://www.cnblogs.com/bigbigdotnet/archive/2010/12/27/1918253.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/bigbigdotnet/archive/2010/12/27/1918253.html"/><content type="html">&lt;p&gt;关于冒泡事件的理解，主要有3个阶段：&lt;/p&gt;  &lt;p&gt;1.捕获阶段，eventPhase的属性值1&lt;/p&gt;  &lt;p&gt;2.目标阶段，eventPhase的属性值2&lt;/p&gt;  &lt;p&gt;3.冒泡阶段，eventPhase的属性值3&lt;/p&gt;  &lt;p&gt;以上为黑羽所著的《actionscript3殿堂之路》中描述为。让我们来看下面的例子：&lt;/p&gt;  &lt;p&gt;&lt;object id="Main" codebase="http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="500" height="380"&gt; &lt;param name="movie" value="http://files.cnblogs.com/bigbigdotnet/event.swf" /&gt; &lt;param name="quality" value="high" /&gt; &lt;param name="bgcolor" value="#869ca7" /&gt; &lt;param name="allowScriptAccess" value="sameDomain" /&gt;    &lt;embed src="http://files.cnblogs.com/bigbigdotnet/event.swf" quality="high" bgcolor="#869ca7" width="500" height="380" name="Main" align="center" play="true" loop="false" quality="high" allowscriptaccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.adobe.com/go/getflashplayer"&gt;    &lt;/embed&gt;  &lt;/object&gt;&lt;/p&gt;  &lt;p&gt;比如点击以上倒数第3个容器，事件流过程如下图：&lt;/p&gt;  &lt;p&gt;&lt;object id="Main" codebase="http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="500" height="380"&gt; &lt;param name="movie" value="http://files.cnblogs.com/bigbigdotnet/event2.swf" /&gt; &lt;param name="quality" value="high" /&gt; &lt;param name="bgcolor" value="#869ca7" /&gt; &lt;param name="allowScriptAccess" value="sameDomain" /&gt;    &lt;embed src="http://files.cnblogs.com/bigbigdotnet/event2.swf" quality="high" bgcolor="#869ca7" width="500" height="380" name="Main" align="center" play="true" loop="false" quality="high" allowscriptaccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.adobe.com/go/getflashplayer"&gt;    &lt;/embed&gt;  &lt;/object&gt;&lt;/p&gt;  &lt;p&gt;如果在点击容器C的事件里，让这次点击事件停止冒泡的话，拖拽这个容器的时候，这个容器和包含在这个容器 &lt;/p&gt;  &lt;p&gt;上面的其它容器都会跟着移动。所点击的这个容器以下的容器就不会跟着移动了，因为在所点击的容器的事件里， &lt;/p&gt;  &lt;p&gt;已经让冒泡已经停止了，即是说向舞台冒泡的趋于也停止住了。程序中e.stopPropagation()，是停止冒泡的关键 &lt;/p&gt;  &lt;p&gt;。 &lt;/p&gt;  &lt;p&gt;如果在点击容器C的事件里，不停止这次点击事件冒泡的话，这次点击的会冒泡到最接近舞台的那个容器去，也 &lt;/p&gt;  &lt;p&gt;就是最下边那个大容器。当然拖拽的时候，就是对大容器进行拖拽操作，大容器上面的那些被包含的其它容器也会 &lt;/p&gt;  &lt;p&gt;跟着移动。&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;源代码:&lt;a title="http://files.cnblogs.com/bigbigdotnet/event.rar" href="http://files.cnblogs.com/bigbigdotnet/event.rar"&gt;http://files.cnblogs.com/bigbigdotnet/event.rar&lt;/a&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/bigbigdotnet/aggbug/1918253.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/bigbigdotnet/archive/2010/12/27/1918253.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/bigbigdotnet/archive/2010/12/25/1916771.html</id><title type="text">actionscript3.0 相对运动小案例</title><summary type="text"> 分析: 上例中按键向右的话，小球向右边移动，按键向左的话，小球向左移动，当快移动到背景图的两端时候，小球还在移动，直到靠边。 其实当小球移动到舞台的中央过后，再向右移动的时候，背景图就同时开始在向左移动，直到小球移动到快要到背景图的另外一端，背景图才不移动。 从舞台一端开始，你移动小球到了舞台正中央的时候，你应该感觉到小球始终在正中央，此时的背景在向小球移动相反的方向移动。 你观看这个过程就...</summary><published>2010-12-25T08:00:00Z</published><updated>2010-12-25T08:00:00Z</updated><author><name>bigbigdotnet</name><uri>http://www.cnblogs.com/bigbigdotnet/</uri></author><link rel="alternate" href="http://www.cnblogs.com/bigbigdotnet/archive/2010/12/25/1916771.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/bigbigdotnet/archive/2010/12/25/1916771.html"/><content type="html">&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;object id="Main" codebase="http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="500" height="380"&gt; &lt;param name="movie" value="http://files.cnblogs.com/bigbigdotnet/relativeMove.swf" /&gt; &lt;param name="quality" value="high" /&gt; &lt;param name="bgcolor" value="#869ca7" /&gt; &lt;param name="allowScriptAccess" value="sameDomain" /&gt;    &lt;embed src="http://files.cnblogs.com/bigbigdotnet/relativeMove.swf" quality="high" bgcolor="#869ca7" width="500" height="380" name="Main" align="center" play="true" loop="false" quality="high" allowscriptaccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.adobe.com/go/getflashplayer"&gt;    &lt;/embed&gt;  &lt;/object&gt;&lt;/p&gt;  &lt;p&gt;分析: &lt;/p&gt;  &lt;p&gt;上例中按键向右的话，小球向右边移动，按键向左的话，小球向左移动，当快移动到背景图的两端时候，小球还在移动，直到靠边。 &lt;/p&gt;  &lt;p&gt;其实当小球移动到舞台的中央过后，再向右移动的时候，背景图就同时开始在向左移动，直到小球移动到快要到背景图的另外一端，背景图才不移动。 从舞台一端开始，你移动小球到了舞台正中央的时候，你应该感觉到小球始终在正中央，此时的背景在向小球移动相反的方向移动。&lt;/p&gt;  &lt;p&gt;你观看这个过程就像你观看一个人在扶手自动电梯上向电梯相反方向走步一样。电梯向上一台阶，人就向下一台阶。所以人始终还是在电梯原来那一阶，这个道理就和小球为什么始终在舞台中央一样，但电梯一直在向上运动。如果把人比作小球，电梯比作背景，那么背景就一直在向上运动，就会感觉背景里的小球没运动。 当然你也可以理解为，小球向下运动，而背景没运动。这个就看你选择什么作为参照物了。&lt;/p&gt;  &lt;p&gt;程序中，背景图宽800像素，小球和背景分别用了两个视图容器来处理这种相对移动。&lt;/p&gt;  &lt;p&gt;小球类：&lt;/p&gt;  &lt;p&gt;Ball.as&lt;/p&gt;  &lt;div class="csharpcode"&gt;   &lt;span class="lnum"&gt;   1:  &lt;/span&gt;package com.helloshp.view  &lt;span class="lnum"&gt;   2:  &lt;/span&gt;{  &lt;span class="lnum"&gt;   3:  &lt;/span&gt;    import flash.display.Sprite;  &lt;span class="lnum"&gt;   4:  &lt;/span&gt;      &lt;span class="lnum"&gt;   5:  &lt;/span&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; Ball extends Sprite  &lt;span class="lnum"&gt;   6:  &lt;/span&gt;    {  &lt;span class="lnum"&gt;   7:  &lt;/span&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; function Ball()  &lt;span class="lnum"&gt;   8:  &lt;/span&gt;        {  &lt;span class="lnum"&gt;   9:  &lt;/span&gt;            super();  &lt;span class="lnum"&gt;  10:  &lt;/span&gt;            init();  &lt;span class="lnum"&gt;  11:  &lt;/span&gt;        }  &lt;span class="lnum"&gt;  12:  &lt;/span&gt;          &lt;span class="lnum"&gt;  13:  &lt;/span&gt;        &lt;span class="kwrd"&gt;private&lt;/span&gt; function init():&lt;span class="kwrd"&gt;void&lt;/span&gt;{  &lt;span class="lnum"&gt;  14:  &lt;/span&gt;            &lt;span class="kwrd"&gt;this&lt;/span&gt;.graphics.beginFill(0xff0000);  &lt;span class="lnum"&gt;  15:  &lt;/span&gt;            &lt;span class="kwrd"&gt;this&lt;/span&gt;.graphics.drawCircle(0,0,20);  &lt;span class="lnum"&gt;  16:  &lt;/span&gt;            &lt;span class="kwrd"&gt;this&lt;/span&gt;.graphics.endFill();  &lt;span class="lnum"&gt;  17:  &lt;/span&gt;        }  &lt;span class="lnum"&gt;  18:  &lt;/span&gt;    }  &lt;span class="lnum"&gt;  19:  &lt;/span&gt;}&lt;/div&gt;&lt;style type="text/css"&gt;.csharpcode, .csharpcode pre{font-size: small;color: black;font-family: consolas, "Courier New", courier, monospace;background-color: #ffffff;/*white-space: pre;*/}.csharpcode pre { margin: 0em; }.csharpcode .rem { color: #008000; }.csharpcode .kwrd { color: #0000ff; }.csharpcode .str { color: #006080; }.csharpcode .op { color: #0000c0; }.csharpcode .preproc { color: #cc6633; }.csharpcode .asp { background-color: #ffff00; }.csharpcode .html { color: #800000; }.csharpcode .attr { color: #ff0000; }.csharpcode .alt {background-color: #f4f4f4;width: 100%;margin: 0em;}.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;p&gt;背景类:&lt;/p&gt;&lt;p&gt;SceneView.as&lt;/p&gt;&lt;div class="csharpcode"&gt;  &lt;span class="lnum"&gt;   1:  &lt;/span&gt;package com.helloshp.view  &lt;span class="lnum"&gt;   2:  &lt;/span&gt;{  &lt;span class="lnum"&gt;   3:  &lt;/span&gt;    import flash.display.Sprite;  &lt;span class="lnum"&gt;   4:  &lt;/span&gt;      &lt;span class="lnum"&gt;   5:  &lt;/span&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; SceneView extends Sprite  &lt;span class="lnum"&gt;   6:  &lt;/span&gt;    {  &lt;span class="lnum"&gt;   7:  &lt;/span&gt;        [Embed(source=&lt;span class="str"&gt;&amp;quot;assets/bg.jpg&amp;quot;&lt;/span&gt;)]  &lt;span class="lnum"&gt;   8:  &lt;/span&gt;        &lt;span class="kwrd"&gt;private&lt;/span&gt; var bg:Class;  &lt;span class="lnum"&gt;   9:  &lt;/span&gt;          &lt;span class="lnum"&gt;  10:  &lt;/span&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; function SceneView()  &lt;span class="lnum"&gt;  11:  &lt;/span&gt;        {  &lt;span class="lnum"&gt;  12:  &lt;/span&gt;            super();  &lt;span class="lnum"&gt;  13:  &lt;/span&gt;            init();  &lt;span class="lnum"&gt;  14:  &lt;/span&gt;        }  &lt;span class="lnum"&gt;  15:  &lt;/span&gt;          &lt;span class="lnum"&gt;  16:  &lt;/span&gt;        &lt;span class="kwrd"&gt;private&lt;/span&gt; function init():&lt;span class="kwrd"&gt;void&lt;/span&gt;{  &lt;span class="lnum"&gt;  17:  &lt;/span&gt;            addChild( &lt;span class="kwrd"&gt;new&lt;/span&gt; bg() );  &lt;span class="lnum"&gt;  18:  &lt;/span&gt;        }  &lt;span class="lnum"&gt;  19:  &lt;/span&gt;    }  &lt;span class="lnum"&gt;  20:  &lt;/span&gt;}&lt;/div&gt;&lt;style type="text/css"&gt;.csharpcode, .csharpcode pre{font-size: small;color: black;font-family: consolas, "Courier New", courier, monospace;background-color: #ffffff;/*white-space: pre;*/}.csharpcode pre { margin: 0em; }.csharpcode .rem { color: #008000; }.csharpcode .kwrd { color: #0000ff; }.csharpcode .str { color: #006080; }.csharpcode .op { color: #0000c0; }.csharpcode .preproc { color: #cc6633; }.csharpcode .asp { background-color: #ffff00; }.csharpcode .html { color: #800000; }.csharpcode .attr { color: #ff0000; }.csharpcode .alt {background-color: #f4f4f4;width: 100%;margin: 0em;}.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;主视图类：&lt;/p&gt;&lt;p&gt;MainView.as&lt;/p&gt;&lt;div class="csharpcode"&gt;  &lt;span class="lnum"&gt;   1:  &lt;/span&gt;package com.helloshp  &lt;span class="lnum"&gt;   2:  &lt;/span&gt;{  &lt;span class="lnum"&gt;   3:  &lt;/span&gt;    import com.helloshp.view.Ball;  &lt;span class="lnum"&gt;   4:  &lt;/span&gt;    import com.helloshp.view.SceneView;  &lt;span class="lnum"&gt;   5:  &lt;/span&gt;      &lt;span class="lnum"&gt;   6:  &lt;/span&gt;    import flash.display.Sprite;  &lt;span class="lnum"&gt;   7:  &lt;/span&gt;    import flash.events.Event;  &lt;span class="lnum"&gt;   8:  &lt;/span&gt;    import flash.events.KeyboardEvent;  &lt;span class="lnum"&gt;   9:  &lt;/span&gt;    import flash.ui.Keyboard;  &lt;span class="lnum"&gt;  10:  &lt;/span&gt;      &lt;span class="lnum"&gt;  11:  &lt;/span&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; MainView extends Sprite  &lt;span class="lnum"&gt;  12:  &lt;/span&gt;    {  &lt;span class="lnum"&gt;  13:  &lt;/span&gt;        &lt;span class="kwrd"&gt;private&lt;/span&gt; var ball:Ball;  &lt;span class="lnum"&gt;  14:  &lt;/span&gt;        &lt;span class="kwrd"&gt;private&lt;/span&gt; var sv:SceneView;  &lt;span class="lnum"&gt;  15:  &lt;/span&gt;          &lt;span class="lnum"&gt;  16:  &lt;/span&gt;        &lt;span class="kwrd"&gt;private&lt;/span&gt; var isStart:Boolean;  &lt;span class="lnum"&gt;  17:  &lt;/span&gt;        &lt;span class="kwrd"&gt;private&lt;/span&gt; var speed:&lt;span class="kwrd"&gt;int&lt;/span&gt;;  &lt;span class="lnum"&gt;  18:  &lt;/span&gt;        &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;const&lt;/span&gt; LIMIT_LEFT:&lt;span class="kwrd"&gt;int&lt;/span&gt;=0;    &lt;span class="rem"&gt;//背景图左边界&lt;/span&gt;  &lt;span class="lnum"&gt;  19:  &lt;/span&gt;        &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;const&lt;/span&gt; LIMIT_RIGHT:&lt;span class="kwrd"&gt;int&lt;/span&gt;=800;&lt;span class="rem"&gt;//背景图右边界&lt;/span&gt;  &lt;span class="lnum"&gt;  20:  &lt;/span&gt;          &lt;span class="lnum"&gt;  21:  &lt;/span&gt;        &lt;span class="kwrd"&gt;public&lt;/span&gt; function MainView()  &lt;span class="lnum"&gt;  22:  &lt;/span&gt;        {  &lt;span class="lnum"&gt;  23:  &lt;/span&gt;            super();  &lt;span class="lnum"&gt;  24:  &lt;/span&gt;              &lt;span class="lnum"&gt;  25:  &lt;/span&gt;              &lt;span class="lnum"&gt;  26:  &lt;/span&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt;(stage!=&lt;span class="kwrd"&gt;null&lt;/span&gt;){  &lt;span class="lnum"&gt;  27:  &lt;/span&gt;                init();  &lt;span class="lnum"&gt;  28:  &lt;/span&gt;            }  &lt;span class="lnum"&gt;  29:  &lt;/span&gt;            &lt;span class="kwrd"&gt;else&lt;/span&gt;{  &lt;span class="lnum"&gt;  30:  &lt;/span&gt;                &lt;span class="kwrd"&gt;this&lt;/span&gt;.addEventListener(Event.ADDED_TO_STAGE,addedHandler)  &lt;span class="lnum"&gt;  31:  &lt;/span&gt;            }  &lt;span class="lnum"&gt;  32:  &lt;/span&gt;&amp;#160;  &lt;span class="lnum"&gt;  33:  &lt;/span&gt;        }  &lt;span class="lnum"&gt;  34:  &lt;/span&gt;          &lt;span class="lnum"&gt;  35:  &lt;/span&gt;        &lt;span class="kwrd"&gt;private&lt;/span&gt; function init():&lt;span class="kwrd"&gt;void&lt;/span&gt;{  &lt;span class="lnum"&gt;  36:  &lt;/span&gt;            ball = &lt;span class="kwrd"&gt;new&lt;/span&gt; Ball();  &lt;span class="lnum"&gt;  37:  &lt;/span&gt;            sv = &lt;span class="kwrd"&gt;new&lt;/span&gt; SceneView();  &lt;span class="lnum"&gt;  38:  &lt;/span&gt;            addChild( sv );      &lt;span class="rem"&gt;//把背景试图放到舞台上&lt;/span&gt;  &lt;span class="lnum"&gt;  39:  &lt;/span&gt;            sv.addChild(ball);&lt;span class="rem"&gt;//把小球放到背景试图里面，而不是放到舞台上&lt;/span&gt;  &lt;span class="lnum"&gt;  40:  &lt;/span&gt;            ball.y = 200;  &lt;span class="lnum"&gt;  41:  &lt;/span&gt;              &lt;span class="lnum"&gt;  42:  &lt;/span&gt;            stage.addEventListener(KeyboardEvent.KEY_DOWN,keyDownHandler);  &lt;span class="lnum"&gt;  43:  &lt;/span&gt;            stage.addEventListener(KeyboardEvent.KEY_UP,kyUpHandler);  &lt;span class="lnum"&gt;  44:  &lt;/span&gt;            addEventListener(Event.ENTER_FRAME,enterFrameHandler);  &lt;span class="lnum"&gt;  45:  &lt;/span&gt;        }  &lt;span class="lnum"&gt;  46:  &lt;/span&gt;          &lt;span class="lnum"&gt;  47:  &lt;/span&gt;        &lt;span class="rem"&gt;//键盘弹起就停止移动&lt;/span&gt;  &lt;span class="lnum"&gt;  48:  &lt;/span&gt;        &lt;span class="kwrd"&gt;private&lt;/span&gt; function kyUpHandler(e:KeyboardEvent):&lt;span class="kwrd"&gt;void&lt;/span&gt;{  &lt;span class="lnum"&gt;  49:  &lt;/span&gt;            isStart = &lt;span class="kwrd"&gt;false&lt;/span&gt;;  &lt;span class="lnum"&gt;  50:  &lt;/span&gt;        }  &lt;span class="lnum"&gt;  51:  &lt;/span&gt;          &lt;span class="lnum"&gt;  52:  &lt;/span&gt;        &lt;span class="rem"&gt;//键盘按下就开始移动&lt;/span&gt;  &lt;span class="lnum"&gt;  53:  &lt;/span&gt;        &lt;span class="kwrd"&gt;private&lt;/span&gt; function keyDownHandler(e:KeyboardEvent):&lt;span class="kwrd"&gt;void&lt;/span&gt;{  &lt;span class="lnum"&gt;  54:  &lt;/span&gt;            &lt;span class="kwrd"&gt;switch&lt;/span&gt;( e.keyCode ){  &lt;span class="lnum"&gt;  55:  &lt;/span&gt;                &lt;span class="kwrd"&gt;case&lt;/span&gt; Keyboard.RIGHT:  &lt;span class="lnum"&gt;  56:  &lt;/span&gt;                    isStart = &lt;span class="kwrd"&gt;true&lt;/span&gt;;  &lt;span class="lnum"&gt;  57:  &lt;/span&gt;                    speed = 10;  &lt;span class="lnum"&gt;  58:  &lt;/span&gt;                    &lt;span class="kwrd"&gt;break&lt;/span&gt;;  &lt;span class="lnum"&gt;  59:  &lt;/span&gt;                &lt;span class="kwrd"&gt;case&lt;/span&gt; Keyboard.LEFT:  &lt;span class="lnum"&gt;  60:  &lt;/span&gt;                    isStart = &lt;span class="kwrd"&gt;true&lt;/span&gt;;  &lt;span class="lnum"&gt;  61:  &lt;/span&gt;                    speed = -10;   &lt;span class="lnum"&gt;  62:  &lt;/span&gt;                    &lt;span class="kwrd"&gt;break&lt;/span&gt;;  &lt;span class="lnum"&gt;  63:  &lt;/span&gt;                &lt;span class="kwrd"&gt;default&lt;/span&gt;:  &lt;span class="lnum"&gt;  64:  &lt;/span&gt;                    speed = 0;  &lt;span class="lnum"&gt;  65:  &lt;/span&gt;                    &lt;span class="kwrd"&gt;break&lt;/span&gt;;  &lt;span class="lnum"&gt;  66:  &lt;/span&gt;            }  &lt;span class="lnum"&gt;  67:  &lt;/span&gt;        }  &lt;span class="lnum"&gt;  68:  &lt;/span&gt;          &lt;span class="lnum"&gt;  69:  &lt;/span&gt;        &lt;span class="kwrd"&gt;private&lt;/span&gt; function enterFrameHandler(e:Event):&lt;span class="kwrd"&gt;void&lt;/span&gt;{  &lt;span class="lnum"&gt;  70:  &lt;/span&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt;( !isStart) &lt;span class="kwrd"&gt;return&lt;/span&gt;;  &lt;span class="lnum"&gt;  71:  &lt;/span&gt;              &lt;span class="lnum"&gt;  72:  &lt;/span&gt;            ball.x += speed;&lt;span class="rem"&gt;//小球在X轴加速移动                     &lt;/span&gt;  &lt;span class="lnum"&gt;  73:  &lt;/span&gt;              &lt;span class="lnum"&gt;  74:  &lt;/span&gt;              &lt;span class="lnum"&gt;  75:  &lt;/span&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt;(ball.x &amp;lt; LIMIT_LEFT)&lt;span class="rem"&gt;//如果小球的X坐标小于背景视图的左边界，就让小球一直停止在视图的左边界的位置&lt;/span&gt;  &lt;span class="lnum"&gt;  76:  &lt;/span&gt;                ball.x = LIMIT_LEFT;  &lt;span class="lnum"&gt;  77:  &lt;/span&gt;            &lt;span class="kwrd"&gt;else&lt;/span&gt; &lt;span class="kwrd"&gt;if&lt;/span&gt;( ball.x &amp;gt; LIMIT_RIGHT  )&lt;span class="rem"&gt;//如果小球的X坐标大于背景视图的右边界，就让小球一直停止在视图的右边界位置&lt;/span&gt;  &lt;span class="lnum"&gt;  78:  &lt;/span&gt;                ball.x = LIMIT_RIGHT;              &lt;span class="lnum"&gt;  79:  &lt;/span&gt;              &lt;span class="lnum"&gt;  80:  &lt;/span&gt;              &lt;span class="lnum"&gt;  81:  &lt;/span&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt;( ball.x &amp;lt; stage.stageWidth/2 ){&lt;span class="rem"&gt;//如果小球X坐标运动小于舞台一半，就让场景视图停止在左边界&lt;/span&gt;  &lt;span class="lnum"&gt;  82:  &lt;/span&gt;                sv.x = LIMIT_LEFT;  &lt;span class="lnum"&gt;  83:  &lt;/span&gt;            }  &lt;span class="lnum"&gt;  84:  &lt;/span&gt;            &lt;span class="kwrd"&gt;else&lt;/span&gt; &lt;span class="kwrd"&gt;if&lt;/span&gt;( ball.x &amp;gt; LIMIT_RIGHT - stage.stageWidth/2 ){&lt;span class="rem"&gt;//如果小球X坐标运动到 大于 背景视图右边界减去舞台宽度一半，就让背景视图右边界移动到舞台的右边界&lt;/span&gt;  &lt;span class="lnum"&gt;  85:  &lt;/span&gt;                sv.x = -LIMIT_RIGHT + stage.stageWidth;  &lt;span class="lnum"&gt;  86:  &lt;/span&gt;            }  &lt;span class="lnum"&gt;  87:  &lt;/span&gt;            &lt;span class="kwrd"&gt;else&lt;/span&gt;{&lt;span class="rem"&gt;//当小球运动到舞台的一半的时候，背景视图 就在舞台上向小球相反的方向运动，&lt;/span&gt;  &lt;span class="lnum"&gt;  88:  &lt;/span&gt;                sv.x = -(ball.x - stage.stageWidth/2);              &lt;span class="lnum"&gt;  89:  &lt;/span&gt;            }  &lt;span class="lnum"&gt;  90:  &lt;/span&gt;        }  &lt;span class="lnum"&gt;  91:  &lt;/span&gt;          &lt;span class="lnum"&gt;  92:  &lt;/span&gt;        &lt;span class="kwrd"&gt;private&lt;/span&gt; function addedHandler(e:Event):&lt;span class="kwrd"&gt;void&lt;/span&gt;{  &lt;span class="lnum"&gt;  93:  &lt;/span&gt;            init();  &lt;span class="lnum"&gt;  94:  &lt;/span&gt;        }  &lt;span class="lnum"&gt;  95:  &lt;/span&gt;    }  &lt;span class="lnum"&gt;  96:  &lt;/span&gt;}&lt;/div&gt;&lt;style type="text/css"&gt;.csharpcode, .csharpcode pre{font-size: small;color: black;font-family: consolas, "Courier New", courier, monospace;background-color: #ffffff;/*white-space: pre;*/}.csharpcode pre { margin: 0em; }.csharpcode .rem { color: #008000; }.csharpcode .kwrd { color: #0000ff; }.csharpcode .str { color: #006080; }.csharpcode .op { color: #0000c0; }.csharpcode .preproc { color: #cc6633; }.csharpcode .asp { background-color: #ffff00; }.csharpcode .html { color: #800000; }.csharpcode .attr { color: #ff0000; }.csharpcode .alt {background-color: #f4f4f4;width: 100%;margin: 0em;}.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;p&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;源代码下载：http://files.cnblogs.com/bigbigdotnet/relativeMove.rar&lt;/p&gt;&lt;img src="http://www.cnblogs.com/bigbigdotnet/aggbug/1916771.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/bigbigdotnet/archive/2010/12/25/1916771.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/bigbigdotnet/archive/2010/12/24/1916291.html</id><title type="text">actionscript3.0 写的纸牌游戏21点</title><summary type="text">actionscript3.0 写的纸牌游戏21点，看起来很丑陋，不要笑话！希望大家多多指正！附带源码！程序运行效果：代码下载：http://files.cnblogs.com/bigbigdotnet/CardGame.rar</summary><published>2010-12-24T10:46:00Z</published><updated>2010-12-24T10:46:00Z</updated><author><name>bigbigdotnet</name><uri>http://www.cnblogs.com/bigbigdotnet/</uri></author><link rel="alternate" href="http://www.cnblogs.com/bigbigdotnet/archive/2010/12/24/1916291.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/bigbigdotnet/archive/2010/12/24/1916291.html"/><content type="html">&lt;p&gt;actionscript3.0 写的纸牌游戏21点，看起来很丑陋，&lt;img src="http://www.cnblogs.com/Emoticons/others/haha1.gif" alt="" /&gt;不要笑话！希望大家多多指正！附带源码！&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;程序运行效果：&lt;/p&gt;&lt;p&gt;&lt;object id="Main" width="540" height="600" align="center" bgcolor="#869ca7" data="http://www.helloshp.com/bigbigdotnet.cnblogs.com_jpg/21dot.swf" type="application/x-shockwave-flash"&gt;&lt;param name="quality" value="high" /&gt;&lt;param name="allowScriptAccess" value="sameDomain" /&gt;&lt;param name="src" value="http://www.helloshp.com/bigbigdotnet.cnblogs.com_jpg/21dot.swf" /&gt;&lt;param name="play" value="true" /&gt;&lt;param name="loop" value="loop" /&gt;&lt;param name="allowscriptaccess" value="sameDomain" /&gt;&lt;param name="pluginspage" value="http://www.adobe.com/go/getflashplayer" /&gt;&lt;/object&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;代码下载：&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;http://files.cnblogs.com/bigbigdotnet/CardGame.rar&lt;/p&gt;&lt;img src="http://www.cnblogs.com/bigbigdotnet/aggbug/1916291.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/bigbigdotnet/archive/2010/12/24/1916291.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/bigbigdotnet/archive/2010/12/20/hellohzq.html</id><title type="text">action script 3.0 中使用splice的陷阱</title><summary type="text">splice</summary><published>2010-12-20T06:20:00Z</published><updated>2010-12-20T06:20:00Z</updated><author><name>bigbigdotnet</name><uri>http://www.cnblogs.com/bigbigdotnet/</uri></author><link rel="alternate" href="http://www.cnblogs.com/bigbigdotnet/archive/2010/12/20/hellohzq.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/bigbigdotnet/archive/2010/12/20/hellohzq.html"/><content type="html">&lt;p&gt;如果遇到数组中有连续的相同的内容的时候,比如类似以下的数组:&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;var testAry:Array = [6,1,1,5];&lt;/p&gt;&lt;p&gt;　你想去掉去除1，过后数组的内容变成：[6,5];但结果呢，试试以下代码：&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;for(var i:int=0;i&amp;lt;testAry.length;i++){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if(testAry[i] == 1){&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;testAry.splice(i,1);&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;trace(testAry);&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp; 输出：6,1,5&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;为什么还有个1，没有去掉呢？当splice()方法对数组里的元素进行删除的时候，当切割到数组下标i=1的时候，就会把数组的length减1，下一次循环到的下标的位置就为i=3，下标i=2的元素就被跳过了。&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;以下办法可以解决使用splice的安全问题&amp;nbsp;：&lt;/p&gt;&lt;p&gt;1.数组元素每次删除后，下标自减一次&lt;br /&gt;&amp;nbsp;&amp;nbsp;public function doSplice1(ary:Array):Array{&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;for(var i:int=0;i&amp;lt;ary.length;i++){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if(ary[i] == 1){&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ary.splice(i,1);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;i--;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;return ary;&lt;br /&gt;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;2.倒着进行循环删除处理&lt;br /&gt;&amp;nbsp;&amp;nbsp;public function doSplice2(ary:Array):Array{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;for(var i:int=ary.length;i&amp;gt;=0;i--){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if(ary[i] == 1){&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ary.splice(i,1);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;return ary;&lt;br /&gt;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/bigbigdotnet/aggbug/1911358.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/bigbigdotnet/archive/2010/12/20/hellohzq.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/bigbigdotnet/archive/2010/11/24/1963708.html</id><title type="text">ARPG游戏DEMO</title><summary type="text">下载地址：http://files.cnblogs.com/bigbigdotnet/chibi_war.swf主要涉及技术点：MVC架构bitmap素材切图人物转向处理XML动态加载简单AI:简单转向算法Flex数据绑定Flex场景转换单例模型简单碰撞检测/简单位图碰撞检测等等，待资料整理好后，发布详细结构以及源码</summary><published>2010-11-24T05:47:00Z</published><updated>2010-11-24T05:47:00Z</updated><author><name>bigbigdotnet</name><uri>http://www.cnblogs.com/bigbigdotnet/</uri></author><link rel="alternate" href="http://www.cnblogs.com/bigbigdotnet/archive/2010/11/24/1963708.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/bigbigdotnet/archive/2010/11/24/1963708.html"/><content type="html">&lt;p&gt;&lt;object id="Main" width="800" height="600" data="http://files.cnblogs.com/bigbigdotnet/chibi_war.swf" type="application/x-shockwave-flash"&gt;&lt;param name="quality" value="high" /&gt;&lt;param name="allowScriptAccess" value="sameDomain" /&gt;&lt;param name="src" value="http://files.cnblogs.com/bigbigdotnet/chibi_war.swf" /&gt;&lt;/object&gt;&lt;/p&gt;&lt;p&gt;下载地址：http://files.cnblogs.com/bigbigdotnet/chibi_war.swf&lt;/p&gt;&lt;p&gt;主要涉及技术点：&lt;/p&gt;&lt;p&gt;MVC架构&lt;/p&gt;&lt;p&gt;bitmap素材切图&lt;/p&gt;&lt;p&gt;人物转向处理&lt;/p&gt;&lt;p&gt;XML动态加载&lt;/p&gt;&lt;p&gt;简单AI:简单转向算法&lt;/p&gt;&lt;p&gt;Flex数据绑定&lt;/p&gt;&lt;p&gt;Flex场景转换&lt;/p&gt;&lt;p&gt;单例模型&lt;/p&gt;&lt;p&gt;简单碰撞检测/简单位图碰撞检测&lt;/p&gt;&lt;p&gt;等等，&lt;/p&gt;&lt;p&gt;待资料整理好后，发布详细结构以及源码&lt;/p&gt;&lt;img src="http://www.cnblogs.com/bigbigdotnet/aggbug/1963708.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/bigbigdotnet/archive/2010/11/24/1963708.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/bigbigdotnet/archive/2010/10/12/1848387.html</id><title type="text">解决关于vs2010中&amp;quot;w&amp;quot;无法 显示的问题</title><summary type="text">今天新装了VS2010开发一个Silverlight项目。结果"w"显示不出来，网上一搜索，都没找到答案。突然一想，可能是字体的问题，于是我改变字体为"宋体"或者其它字体，就解决问题了！下图是个网友和我一样的问题的截图：http://www.down100.cn/ITJSWZ/WZYY1/ASPbc2/2010/08/13/10283279090.html</summary><published>2010-10-11T17:20:00Z</published><updated>2010-10-11T17:20:00Z</updated><author><name>bigbigdotnet</name><uri>http://www.cnblogs.com/bigbigdotnet/</uri></author><link rel="alternate" href="http://www.cnblogs.com/bigbigdotnet/archive/2010/10/12/1848387.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/bigbigdotnet/archive/2010/10/12/1848387.html"/><content type="html">&lt;p&gt;今天新装了VS2010开发一个Silverlight项目。结果"w"显示不出来，网上一搜索，都没找到答案。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 18pt"&gt;突然一想，可能是字体的问题，于是我改变字体为"&lt;/span&gt;&lt;span style="color: red; font-size: 18pt"&gt;宋体"&lt;/span&gt;&lt;span style="font-size: 18pt"&gt;或者其它字体，&lt;/span&gt;&lt;span style="font-size: 18pt"&gt;就解决问题了！&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;下图是个网友和我一样的问题的截图：&lt;/p&gt;&lt;p&gt;&lt;img border="0" alt="" src="http://www.down100.cn/UploadFiles/ITJSWZ/2010/8/201008131028321320.jpg" width="867" height="217" /&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.down100.cn/ITJSWZ/WZYY1/ASPbc2/2010/08/13/10283279090.html"&gt;http://www.down100.cn/ITJSWZ/WZYY1/ASPbc2/2010/08/13/10283279090.html&lt;/a&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/bigbigdotnet/aggbug/1848387.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/bigbigdotnet/archive/2010/10/12/1848387.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/bigbigdotnet/archive/2010/08/29/1812138.html</id><title type="text">actionscript3.0中的MVC,EventDispather,IEventDispather的学习</title><summary type="text">在as3.0中使用mvc来构建项目的时候，在model层，总免不了使用事件。在这个例子里，使用MVC创建了一个简单的数字时钟的功能。在model层，使用了4种方式来处理事件发送。并简单对比了一下。方法1.model类继承自EventDispather方法2.model类复合EventDispather方法3.model类继承自Sprite方法4.model类实现IEventDispatcher当前代码注释默认设置方法1来实现,若设置对应的注释可以的尝试使用4种方法来实现这个简单的例子。自我感觉除了方法2不太好以外，其它方法的都可行。环境：Flash build4 ，sdk3.5代码下载地址：h</summary><published>2010-08-29T15:37:00Z</published><updated>2010-08-29T15:37:00Z</updated><author><name>bigbigdotnet</name><uri>http://www.cnblogs.com/bigbigdotnet/</uri></author><link rel="alternate" href="http://www.cnblogs.com/bigbigdotnet/archive/2010/08/29/1812138.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/bigbigdotnet/archive/2010/08/29/1812138.html"/><content type="html">&lt;p&gt;在as3.0中使用mvc来构建项目的时候，在model层，总免不了使用事件。在这个例子里，使用MVC创建了一个简单的数字时钟的功能。在model层，使用了4种方式来处理事件发送。并简单对比了一下。&lt;/p&gt;&lt;p&gt;方法1.model类继承自EventDispather&lt;/p&gt;&lt;p&gt;方法2.model类复合EventDispather&lt;/p&gt;&lt;p&gt;方法3.model类继承自Sprite&lt;/p&gt;&lt;p&gt;方法4.model类实现IEventDispatcher&lt;/p&gt;&lt;p&gt;当前代码注释默认设置方法1来实现,若设置对应的注释可以的尝试使用4种方法来实现这个简单的例子。&lt;/p&gt;&lt;p&gt;自我感觉除了方法2不太好以外，其它方法的都可行。&lt;/p&gt;&lt;p&gt;环境：Flash build4 ，sdk3.5&lt;/p&gt;&lt;p&gt;代码下载地址：http://files.cnblogs.com/bigbigdotnet/MVC.rar&lt;/p&gt;&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/bigbigdotnet/WindowsLiveWriter/action.0MVCEventDispatherIEventDispather_14C1F/QQ%E6%88%AA%E5%9B%BE%E6%9C%AA%E5%91%BD%E5%90%8D_4.jpg"&gt;&lt;img style="display: inline; border-width: 0px;" title="QQ截图未命名" src="http://images.cnblogs.com/cnblogs_com/bigbigdotnet/WindowsLiveWriter/action.0MVCEventDispatherIEventDispather_14C1F/QQ%E6%88%AA%E5%9B%BE%E6%9C%AA%E5%91%BD%E5%90%8D_thumb_1.jpg" alt="QQ截图未命名" width="204" height="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;程序运行效果：&lt;/p&gt;&lt;p&gt;&lt;object id="Main" width="200" height="100" align="center" bgcolor="#869ca7" data="http://www.cnblogs.com/bigbigdotnet/admin/Main.swf" type="application/x-shockwave-flash"&gt;&lt;param name="quality" value="high" /&gt;&lt;param name="allowScriptAccess" value="sameDomain" /&gt;&lt;param name="src" value="http://www.cnblogs.com/bigbigdotnet/admin/Main.swf" /&gt;&lt;param name="play" value="true" /&gt;&lt;param name="loop" value="loop" /&gt;&lt;param name="allowscriptaccess" value="sameDomain" /&gt;&lt;param name="pluginspage" value="http://www.adobe.com/go/getflashplayer" /&gt;  &lt;/object&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #ff0000;"&gt;文档类(程序入口):&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Main.as&lt;/p&gt;&lt;p&gt;package &lt;br /&gt; { &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; import Control.*;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; import Model.*;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; import View.*;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; import flash.display.Sprite;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; [SWF(width="200",height="100")] &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; public class Main extends Sprite &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public function Main() &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var model:Model_A = new Model_A(); &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //var model:Model_B = new Model_B(); &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //var model:Model_C = new Model_C(); &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //var model:Model_D = new Model_D(); &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var controller:Controller = new Controller(model); &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var view:View = new View(model,controller); &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; addChild(view);&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; view.x = 30; &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; view.y = 30; &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;br /&gt; }&lt;/p&gt;&lt;p&gt;&lt;span style="color: #ff0000;"&gt;控制器(control)：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Controller.as&lt;/p&gt;&lt;p&gt;package Control &lt;br /&gt; { &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; import flash.utils.Timer; &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; import flash.events.TimerEvent; &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; import Model.*;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public class Controller &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private var model:Model_A; &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //private var model:Model_B; &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //private var model:Model_C; &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //private var model:Model_D; &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private var timer:Timer; &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public function Controller(model:Model_A):void{ &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.model = model; &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public function startTime():void{&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; model.startTime(); &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;br /&gt; }&lt;/p&gt;&lt;p&gt;&lt;span style="color: #ff0000;"&gt;视图器(view)：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;View.as&lt;/p&gt;&lt;p&gt;package View &lt;br /&gt; { &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; import Control.*;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; import Model.*;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; import flash.display.Sprite; &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; import flash.events.Event; &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; import flash.text.TextField;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; public class View extends Sprite &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private var model:Model_A; &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //private var model:Model_B; &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //private var model:Model_C; &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //private var model:Model_D; &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private var controller:Controller; &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private var tf:TextField;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public function View(model:Model_A,controller:Controller):void{ &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.controller = controller; &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tf = new TextField(); &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; addChild(tf); &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; controller.startTime();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.model = model; &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Mode层为Model_A时使用: &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; model.addEventListener("action",onActionHandler);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Mode层为Model_B时使用: &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //model.getSender().addEventListener("action",onActionHandler);&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Mode层为Model_C时使用: &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //model.addEventListener("action",onActionHandler);&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Mode层为Model_D时使用: &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //model.addEventListener("action",onActionHandler); &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private function onActionHandler(e:Event):void{ &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tf.text = "时间：" + model.hour+" : "+model.minutes+" : "+model.second;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; trace(e.target); &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //当使用方法2的时候，以下这段代码，将会报错！这是因为mode_B中创建_dispather的时候，没有将this的引用注入到_dispatcher里面， &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //即是说,没有把mode_B类的引用注入到_dispatcher里，侦听函数的target对象指向的是dispatcher，而不是mode_B本身 &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //尽管在mode_B类中发送消息，可以这样写:dispatcher = new EventDispatcher();,但以下代码就会报错！ &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //而如果mode_B类中实现IEventDispather接口，同时这样写:dispatcher = new EventDispatcher( this );以下代码就会正确执行。 &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; trace(e.target.hour); &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;br /&gt; }&lt;/p&gt;&lt;p&gt;&lt;span style="color: #ff0000;"&gt;模型器(model)：&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;方法一：Model_A.as&lt;/p&gt;&lt;p&gt;package Model &lt;br /&gt; { &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; import flash.events.*; &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; import flash.utils.Timer;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //方法1：Model继承自EventDispatcher &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; public class Model_A&amp;nbsp; extends EventDispatcher &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public var hour&amp;nbsp;&amp;nbsp;&amp;nbsp; :String;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public var minutes&amp;nbsp;&amp;nbsp;&amp;nbsp; :String;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public var second&amp;nbsp;&amp;nbsp;&amp;nbsp; :String;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public var timer&amp;nbsp;&amp;nbsp;&amp;nbsp; :Timer;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public function Model_A(){} &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public function startTime():void{ &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; timer = new Timer(1000); &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; timer.addEventListener(TimerEvent.TIMER,onTimerHandler); &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; timer.start(); &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private function onTimerHandler(e:TimerEvent):void{ &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var nowDate:Date = new Date(); &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; hour&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = nowDate.getHours()&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;gt;9&amp;nbsp;&amp;nbsp;&amp;nbsp; ?&amp;nbsp;&amp;nbsp;&amp;nbsp; String(nowDate.getHours())&amp;nbsp;&amp;nbsp;&amp;nbsp; :"0"&amp;nbsp;&amp;nbsp;&amp;nbsp; +&amp;nbsp;&amp;nbsp;&amp;nbsp; nowDate.getHours(); &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; minutes = nowDate.getMinutes()&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;gt;9&amp;nbsp;&amp;nbsp;&amp;nbsp; ?&amp;nbsp;&amp;nbsp;&amp;nbsp; String(nowDate.getMinutes()):"0"&amp;nbsp;&amp;nbsp;&amp;nbsp; +&amp;nbsp;&amp;nbsp;&amp;nbsp; nowDate.getMinutes(); &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; second&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = nowDate.getSeconds()&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;gt;9&amp;nbsp;&amp;nbsp;&amp;nbsp; ?&amp;nbsp;&amp;nbsp;&amp;nbsp; String(nowDate.getSeconds()):"0"&amp;nbsp;&amp;nbsp;&amp;nbsp; +&amp;nbsp;&amp;nbsp;&amp;nbsp; nowDate.getSeconds(); &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //直接继承自EventDispatcher所以直接调用dispatchEvent广播事件 &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dispatchEvent(new Event("action")); &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;br /&gt; }&lt;/p&gt;&lt;p&gt;方法二：Model_B.as&lt;/p&gt;&lt;p&gt;package Model &lt;br /&gt; { &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; import flash.events.*; &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; import flash.utils.Timer;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; //方法1：Model没有继承自EventDispatcher &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; public class Model_B &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public var hour&amp;nbsp;&amp;nbsp;&amp;nbsp; :String;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public var minutes&amp;nbsp;&amp;nbsp;&amp;nbsp; :String;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public var second&amp;nbsp;&amp;nbsp;&amp;nbsp; :String;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public var timer&amp;nbsp;&amp;nbsp;&amp;nbsp; :Timer;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //定义一个EventDispatcher对象 &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public var _dispatcher&amp;nbsp;&amp;nbsp;&amp;nbsp; :EventDispatcher; &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public function Model_B(){&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; initSender(); &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public function startTime():void{ &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; timer = new Timer(1000); &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; timer.addEventListener(TimerEvent.TIMER,onTimerHandler); &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; timer.start(); &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public function getSender():EventDispatcher{ &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return _dispatcher; &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private function initSender():void{&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _dispatcher = new EventDispatcher(); &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private function onTimerHandler(e:TimerEvent):void{ &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var nowDate:Date = new Date(); &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; hour&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = nowDate.getHours()&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;gt;9&amp;nbsp;&amp;nbsp;&amp;nbsp; ?&amp;nbsp;&amp;nbsp;&amp;nbsp; String(nowDate.getHours())&amp;nbsp;&amp;nbsp;&amp;nbsp; :"0"&amp;nbsp;&amp;nbsp;&amp;nbsp; +&amp;nbsp;&amp;nbsp;&amp;nbsp; nowDate.getHours(); &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; minutes = nowDate.getMinutes()&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;gt;9&amp;nbsp;&amp;nbsp;&amp;nbsp; ?&amp;nbsp;&amp;nbsp;&amp;nbsp; String(nowDate.getMinutes()):"0"&amp;nbsp;&amp;nbsp;&amp;nbsp; +&amp;nbsp;&amp;nbsp;&amp;nbsp; nowDate.getMinutes(); &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; second&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = nowDate.getSeconds()&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;gt;9&amp;nbsp;&amp;nbsp;&amp;nbsp; ?&amp;nbsp;&amp;nbsp;&amp;nbsp; String(nowDate.getSeconds()):"0"&amp;nbsp;&amp;nbsp;&amp;nbsp; +&amp;nbsp;&amp;nbsp;&amp;nbsp; nowDate.getSeconds(); &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //调用_dispatchEvent广播事件 &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _dispatcher.dispatchEvent(new Event("action"));&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;br /&gt; }&lt;/p&gt;&lt;p&gt;方法三：Model_C.as&lt;/p&gt;&lt;p&gt;package Model &lt;br /&gt; { &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; import flash.display.Sprite; &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; import flash.events.*; &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; import flash.utils.Timer; &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; //方法3：继承自Sprite,同时Sprite也是属于EventDispather类的子类， &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; public class Model_C extends Sprite &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public var hour&amp;nbsp;&amp;nbsp;&amp;nbsp; :String;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public var minutes&amp;nbsp;&amp;nbsp;&amp;nbsp; :String;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public var second&amp;nbsp;&amp;nbsp;&amp;nbsp; :String;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public var timer&amp;nbsp;&amp;nbsp;&amp;nbsp; :Timer;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public function Model_C(){&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public function startTime():void{ &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; timer = new Timer(1000); &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; timer.addEventListener(TimerEvent.TIMER,onTimerHandler); &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; timer.start(); &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private function onTimerHandler(e:TimerEvent):void{ &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var nowDate:Date = new Date(); &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; hour&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = nowDate.getHours()&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;gt;9&amp;nbsp;&amp;nbsp;&amp;nbsp; ?&amp;nbsp;&amp;nbsp;&amp;nbsp; String(nowDate.getHours())&amp;nbsp;&amp;nbsp;&amp;nbsp; :"0"&amp;nbsp;&amp;nbsp;&amp;nbsp; +&amp;nbsp;&amp;nbsp;&amp;nbsp; nowDate.getHours(); &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; minutes = nowDate.getMinutes()&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;gt;9&amp;nbsp;&amp;nbsp;&amp;nbsp; ?&amp;nbsp;&amp;nbsp;&amp;nbsp; String(nowDate.getMinutes()):"0"&amp;nbsp;&amp;nbsp;&amp;nbsp; +&amp;nbsp;&amp;nbsp;&amp;nbsp; nowDate.getMinutes(); &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; second&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = nowDate.getSeconds()&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;gt;9&amp;nbsp;&amp;nbsp;&amp;nbsp; ?&amp;nbsp;&amp;nbsp;&amp;nbsp; String(nowDate.getSeconds()):"0"&amp;nbsp;&amp;nbsp;&amp;nbsp; +&amp;nbsp;&amp;nbsp;&amp;nbsp; nowDate.getSeconds(); &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //直接调用Spreite所继承的EventDispather类的dispatchEvent广播事件 &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; super.dispatchEvent(new Event("action"));&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;br /&gt; }&lt;/p&gt;&lt;p&gt;方法四：Model_C.as&lt;/p&gt;&lt;p&gt;package Model &lt;br /&gt; { &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; import flash.events.*; &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; import flash.utils.Timer; &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; //方法4，Model直接实现IEventDispatcher，但要实现5个必须的方法 &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; public class Model_D implements IEventDispatcher &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public var hour&amp;nbsp;&amp;nbsp;&amp;nbsp; :String;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public var minutes&amp;nbsp;&amp;nbsp;&amp;nbsp; :String;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public var second&amp;nbsp;&amp;nbsp;&amp;nbsp; :String;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public var timer&amp;nbsp;&amp;nbsp;&amp;nbsp; :Timer; &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private var _dispatcher:EventDispatcher; &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public function Model_D(){ &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //this传进来很重要。也即是说把该类的引用传递给EventDispatcher. &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //监听函数的target对象指向Model_D类的引用而不是_dispatcher; &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _dispatcher = new EventDispatcher(this); &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public function addEventListener(type:String, listener:Function, useCapture:Boolean=false, priority:int=0, useWeakReference:Boolean=false):void &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _dispatcher.addEventListener(type,listener,useCapture,priority,useWeakReference); &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public function removeEventListener(type:String, listener:Function, useCapture:Boolean=false):void &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _dispatcher.removeEventListener(type,listener,useCapture); &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public function dispatchEvent(event:Event):Boolean &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return _dispatcher.dispatchEvent(event); &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public function hasEventListener(type:String):Boolean &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return _dispatcher.hasEventListener(type); &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public function willTrigger(type:String):Boolean &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return _dispatcher.willTrigger(type); &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public function startTime():void{ &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; timer = new Timer(1000); &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; timer.addEventListener(TimerEvent.TIMER,onTimerHandler); &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; timer.start(); &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; private function onTimerHandler(e:TimerEvent):void{ &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var nowDate:Date = new Date(); &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; hour&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = nowDate.getHours()&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;gt;9&amp;nbsp;&amp;nbsp;&amp;nbsp; ?&amp;nbsp;&amp;nbsp;&amp;nbsp; String(nowDate.getHours())&amp;nbsp;&amp;nbsp;&amp;nbsp; :"0"&amp;nbsp;&amp;nbsp;&amp;nbsp; +&amp;nbsp;&amp;nbsp;&amp;nbsp; nowDate.getHours(); &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; minutes = nowDate.getMinutes()&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;gt;9&amp;nbsp;&amp;nbsp;&amp;nbsp; ?&amp;nbsp;&amp;nbsp;&amp;nbsp; String(nowDate.getMinutes()):"0"&amp;nbsp;&amp;nbsp;&amp;nbsp; +&amp;nbsp;&amp;nbsp;&amp;nbsp; nowDate.getMinutes(); &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; second&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = nowDate.getSeconds()&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;gt;9&amp;nbsp;&amp;nbsp;&amp;nbsp; ?&amp;nbsp;&amp;nbsp;&amp;nbsp; String(nowDate.getSeconds()):"0"&amp;nbsp;&amp;nbsp;&amp;nbsp; +&amp;nbsp;&amp;nbsp;&amp;nbsp; nowDate.getSeconds(); &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //调用dispatchEvent广播事件 &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _dispatcher.dispatchEvent(new Event("action"));&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;br /&gt; }&lt;/p&gt;&lt;img src="http://www.cnblogs.com/bigbigdotnet/aggbug/1812138.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/bigbigdotnet/archive/2010/08/29/1812138.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/bigbigdotnet/archive/2010/05/03/1726400.html</id><title type="text">blend3中导入ppt</title><summary type="text">今天尝试了一下再Blend3中导入 ppt文件，发现只有在创建SketchFlow project才能导入pptx文件。导入的其实就是一张png的图片，我在ppt中创建的动画效果都没有导入进来。在blend3中导入的时候，需要先安装一个名为o2007pia.msi插件(http://www.microsoft.com/downloads/details.aspx?familyid=59DAEBAA...</summary><published>2010-05-03T07:52:00Z</published><updated>2010-05-03T07:52:00Z</updated><author><name>bigbigdotnet</name><uri>http://www.cnblogs.com/bigbigdotnet/</uri></author><link rel="alternate" href="http://www.cnblogs.com/bigbigdotnet/archive/2010/05/03/1726400.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/bigbigdotnet/archive/2010/05/03/1726400.html"/><content type="text">今天尝试了一下再Blend3中导入 ppt文件，发现只有在创建SketchFlow project才能导入pptx文件。导入的其实就是一张png的图片，我在ppt中创建的动画效果都没有导入进来。在blend3中导入的时候，需要先安装一个名为o2007pia.msi插件(http://www.microsoft.com/downloads/details.aspx?familyid=59DAEBAA...</content></entry></feed>
