<?xml version="1.0" encoding="UTF-8" standalone="no"?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><rss xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" version="2.0"><channel><title>ActionScript Snippets</title><description></description><managingEditor>noreply@blogger.com (Stephen)</managingEditor><pubDate>Wed, 28 Aug 2024 21:46:15 +0900</pubDate><generator>Blogger http://www.blogger.com</generator><openSearch:totalResults xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/">42</openSearch:totalResults><openSearch:startIndex xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/">1</openSearch:startIndex><openSearch:itemsPerPage xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/">25</openSearch:itemsPerPage><link>http://assnippets.blogspot.com/</link><language>en-us</language><itunes:explicit>no</itunes:explicit><itunes:subtitle/><itunes:category text="Technology"/><itunes:owner><itunes:email>noreply@blogger.com</itunes:email></itunes:owner><item><title>[AS3,Color]常用的一些颜色的常量</title><link>http://assnippets.blogspot.com/2008/04/as3color.html</link><category>Color</category><author>noreply@blogger.com (Stephen)</author><pubDate>Sun, 6 Apr 2008 21:05:00 +0900</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-1347259298261066986.post-5947216368024735517</guid><description>&lt;p&gt;&lt;pre&gt;/**&lt;br /&gt; * The color white.  &lt;br /&gt; */&lt;br /&gt;public static const WHITE:uint   = 0xFFFFFFFF;&lt;br /&gt;&lt;br /&gt;/**&lt;br /&gt; * The color light gray.  &lt;br /&gt; */&lt;br /&gt;public static const LIGHT_GRAY:uint = 0xFFC0C0C0;&lt;br /&gt;&lt;br /&gt;/**&lt;br /&gt; * The color gray.  &lt;br /&gt; */&lt;br /&gt;public static const GRAY:uint   = 0xFF808080;&lt;br /&gt;&lt;br /&gt;/**&lt;br /&gt; * The color dark gray.  &lt;br /&gt; */&lt;br /&gt;public static const DARK_GRAY:uint  = 0xFF404040;&lt;br /&gt;&lt;br /&gt;/**&lt;br /&gt; * The color black.  &lt;br /&gt; */&lt;br /&gt;public static const BLACK:uint   = 0xFF000000;&lt;br /&gt;&lt;br /&gt;/**&lt;br /&gt; * The color red.  &lt;br /&gt; */&lt;br /&gt;public static const RED:uint   = 0xFFFF0000;&lt;br /&gt;&lt;br /&gt;/**&lt;br /&gt; * The color pink.  &lt;br /&gt; */&lt;br /&gt;public static const PINK:uint   = 0xFFFFAFAF;&lt;br /&gt;&lt;br /&gt;/**&lt;br /&gt; * The color orange.  &lt;br /&gt; */&lt;br /&gt;public static const ORANGE:uint  = 0xFFFFC800;&lt;br /&gt;&lt;br /&gt;/**&lt;br /&gt; * The color yellow.  &lt;br /&gt; */&lt;br /&gt;public static const YELLOW:uint  = 0xFFFFFF00;&lt;br /&gt;&lt;br /&gt;/**&lt;br /&gt; * The color green.  &lt;br /&gt; */&lt;br /&gt;public static const GREEN:uint   = 0xFF00FF00;&lt;br /&gt;&lt;br /&gt;/**&lt;br /&gt; * The color magenta.  &lt;br /&gt; */&lt;br /&gt;public static const MAGENTA:uint  = 0xFFFF00FF;&lt;br /&gt;&lt;br /&gt;/**&lt;br /&gt; * The color cyan.  &lt;br /&gt; */&lt;br /&gt;public static const CYAN:uint   = 0xFF00FFFF;&lt;br /&gt;&lt;br /&gt;/**&lt;br /&gt; * The color blue.  &lt;br /&gt; */&lt;br /&gt;public static const BLUE:uint   = 0xFF0000FF;&lt;br /&gt;&lt;/pre&gt;&lt;/p&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>[AS3,Math]立方根</title><link>http://assnippets.blogspot.com/2008/02/as3math_16.html</link><category>Math</category><author>noreply@blogger.com (Stephen)</author><pubDate>Sat, 16 Feb 2008 20:29:00 +0900</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-1347259298261066986.post-8844759046350282509</guid><description>&lt;p&gt;/**&lt;br /&gt; * 立方根&lt;br /&gt; * &lt;br /&gt; * @param v 一个数字。&lt;br /&gt; * @return 数字的立方根。&lt;br /&gt; */&lt;br /&gt;&lt;pre&gt;public static function cbrt(value:Number):Number {&lt;br /&gt; return Math.pow(value, 1/3);&lt;br /&gt;}&lt;/pre&gt;&lt;/p&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>[AS3,I/O]URLVariables 的编码器</title><link>http://assnippets.blogspot.com/2008/02/as3iourlvariables.html</link><category>I/O</category><author>noreply@blogger.com (Stephen)</author><pubDate>Thu, 14 Feb 2008 22:57:00 +0900</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-1347259298261066986.post-7463334034802486751</guid><description>&lt;p&gt;&lt;br /&gt;/**&lt;br /&gt; * URLVariables 的编码器。&lt;br /&gt; * 把一个对象转换为 URLVariables 的格式的字符串。&lt;br /&gt; * URLVariables 的格式为"&lt;code&gt;a=value1&amp;b=value2&lt;/code&gt;"。&lt;br /&gt; * @param o 一个对象。&lt;br /&gt; * @return URLVariables 的格式的字符串。&lt;br /&gt; */&lt;br /&gt;&lt;pre&gt;public static function encode(o:Object):String {&lt;br /&gt; var varList:XMLList = describeType(o).variable;&lt;br /&gt; var result:String = "";&lt;br /&gt; for(var i:String in o) {&lt;br /&gt;  result += encodeURIComponent(i) + "=" + encodeURIComponent(o[i]) + "&amp;";&lt;br /&gt; }&lt;br /&gt; for each(var v:XML in varList) {&lt;br /&gt;  result += encodeURIComponent(v.@name) + &lt;br /&gt;   "=" + encodeURIComponent(o[v.@name]) + "&amp;";&lt;br /&gt; }&lt;br /&gt; return result.substring(0, result.length-1);&lt;br /&gt;}&lt;/pre&gt;&lt;/p&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>[AS3,I/O]Base85的解码器</title><link>http://assnippets.blogspot.com/2008/02/as3iobase85_08.html</link><category>I/O</category><author>noreply@blogger.com (Stephen)</author><pubDate>Fri, 8 Feb 2008 21:07:00 +0900</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-1347259298261066986.post-2156182170298815931</guid><description>&lt;p&gt;需要 &lt;a href="http://assnippets.blogspot.com/2008/02/as3iobase85.html"&gt;Base85CharSet&lt;/a&gt;，请参见&lt;a href="http://assnippets.blogspot.com/2008/02/as3iobase85.html"&gt;[AS3,I/O]Base85的字符集&lt;/a&gt;。&lt;br /&gt;关联项目：&lt;a href="http://assnippets.blogspot.com/2008/02/as3iobase85_07.html"&gt;[AS3,I/O]Base85的编码器(Base85Encoder)&lt;/a&gt;。&lt;/p&gt;&lt;p&gt;&lt;pre&gt;package advancedflex.io.format {&lt;br /&gt; &lt;br /&gt; import flash.utils.ByteArray;&lt;br /&gt; import flash.utils.Endian;&lt;br /&gt; import flash.utils.IDataOutput;&lt;br /&gt; &lt;br /&gt; /**&lt;br /&gt;  * Base85的解码器&lt;br /&gt;  * &lt;p&gt;他把5个字节的文本数据4转换为个字节的2进制数据。&lt;/p&gt;&lt;br /&gt;  * @see Base85CharSet&lt;br /&gt;  * @see Base85Encoder&lt;br /&gt;  */&lt;br /&gt; public class Base85Decoder {&lt;br /&gt;&lt;br /&gt;  /**&lt;br /&gt;   * 解码为String&lt;br /&gt;   * &lt;br /&gt;   * @param src 密文&lt;br /&gt;   * @param charSet 逆字符集&lt;br /&gt;   * @return 原文&lt;br /&gt;   * &lt;br /&gt;   * @see Base85CharSet#RFC_1924&lt;br /&gt;   * @see Base85Encoder#encode&lt;br /&gt;   */&lt;br /&gt;  public static function decode(src:String, charSet:Object = null):String {&lt;br /&gt;   var bytes:ByteArray = new ByteArray();&lt;br /&gt;   bytes.writeUTFBytes(src);&lt;br /&gt;   var mark:int = bytes.length;&lt;br /&gt;   decodeByteArray(src, bytes, charSet ? charSet : Base85CharSet.RFC_1924);&lt;br /&gt;   bytes.position = mark;&lt;br /&gt;   return bytes.readUTFBytes(bytes.bytesAvailable);&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  /**&lt;br /&gt;   * 解码为ByteArray&lt;br /&gt;   * &lt;br /&gt;   * @param data 密文&lt;br /&gt;   * @param output 输出流&lt;br /&gt;   * @param decharSet 逆字符集&lt;br /&gt;   * &lt;br /&gt;   * @see Base85CharSet#RFC_1924&lt;br /&gt;   * @see Base85Encoder#encodeByteArray&lt;br /&gt;   */&lt;br /&gt;  public static function decodeByteArray(data:String, output:IDataOutput, decharSet:Object = null):void {&lt;br /&gt;   decharSet = decharSet ? decharSet : Base85CharSet.DECODE_RFC_1924;&lt;br /&gt;   var dataLength:int = data.length;&lt;br /&gt;   var endbytes:int = dataLength % 5;&lt;br /&gt;   dataLength -= endbytes;&lt;br /&gt;   //decode normal group of bytes&lt;br /&gt;   for(var i:int = 0; i &amp;lt; dataLength;i++) {&lt;br /&gt;    output.writeUnsignedInt(&lt;br /&gt;     decharSet[data.charAt(i)] + &lt;br /&gt;     decharSet[data.charAt(++i)]*85 + &lt;br /&gt;     decharSet[data.charAt(++i)]*(85*85) + &lt;br /&gt;     decharSet[data.charAt(++i)]*(85*85*85) + &lt;br /&gt;     decharSet[data.charAt(++i)]*(85*85*85*85)&lt;br /&gt;    );&lt;br /&gt;   }&lt;br /&gt;   //decode last group of bytes&lt;br /&gt;   var buf:int;&lt;br /&gt;   switch(endbytes) {&lt;br /&gt;    case 0:&lt;br /&gt;     break;&lt;br /&gt;    case 4:&lt;br /&gt;     buf = (&lt;br /&gt;      decharSet[data.charAt(i)] + &lt;br /&gt;      decharSet[data.charAt(++i)]*85 + &lt;br /&gt;      decharSet[data.charAt(++i)]*(85*85) + &lt;br /&gt;      decharSet[data.charAt(++i)]*(85*85*85)&lt;br /&gt;     );&lt;br /&gt;     if(output.endian == Endian.BIG_ENDIAN) {&lt;br /&gt;      output.writeByte(&lt;br /&gt;       (buf&amp;0xFF0000) &gt;&gt; 16&lt;br /&gt;      );&lt;br /&gt;      output.writeByte(&lt;br /&gt;       (buf&amp;0x00FF00) &gt;&gt; 8&lt;br /&gt;      );&lt;br /&gt;      output.writeByte(&lt;br /&gt;       (buf&amp;0x0000FF)&lt;br /&gt;      );&lt;br /&gt;     } else {&lt;br /&gt;      output.writeByte(&lt;br /&gt;       (buf&amp;0x0000FF)&lt;br /&gt;      );&lt;br /&gt;      output.writeByte(&lt;br /&gt;       (buf&amp;0x00FF00) &gt;&gt; 8&lt;br /&gt;      );&lt;br /&gt;      output.writeByte(&lt;br /&gt;       (buf&amp;0xFF0000) &gt;&gt; 16&lt;br /&gt;      );&lt;br /&gt;     }&lt;br /&gt;     break;&lt;br /&gt;    case 3:&lt;br /&gt;     output.writeShort(&lt;br /&gt;      decharSet[data.charAt(i)] + &lt;br /&gt;      decharSet[data.charAt(++i)]*85 + &lt;br /&gt;      decharSet[data.charAt(++i)]*(85*85)&lt;br /&gt;     );&lt;br /&gt;     break;&lt;br /&gt;    default: //2&lt;br /&gt;     output.writeByte(&lt;br /&gt;      decharSet[data.charAt(i)] + &lt;br /&gt;      decharSet[data.charAt(++i)]*85&lt;br /&gt;     );&lt;br /&gt;     break;&lt;br /&gt;   }&lt;br /&gt;  }&lt;br /&gt; }&lt;br /&gt;}&lt;/pre&gt;&lt;/p&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>[AS3,I/O]Base85的编码器</title><link>http://assnippets.blogspot.com/2008/02/as3iobase85_07.html</link><category>I/O</category><author>noreply@blogger.com (Stephen)</author><pubDate>Thu, 7 Feb 2008 21:16:00 +0900</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-1347259298261066986.post-4186892105396734973</guid><description>&lt;p&gt;需要 &lt;a href="http://assnippets.blogspot.com/2008/02/as3iobase85.html"&gt;Base85CharSet&lt;/a&gt;，请参见&lt;a href="http://assnippets.blogspot.com/2008/02/as3iobase85.html"&gt;[AS3,I/O]Base85的字符集&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;pre&gt;package advancedflex.io.format {&lt;br /&gt;    import flash.utils.ByteArray;&lt;br /&gt;    import flash.utils.IDataInput;&lt;br /&gt;   &lt;br /&gt;    /**&lt;br /&gt;     * Base85的编码器&lt;br /&gt;     * &lt;p&gt;他把4个字节的2进制数据转换为5个字节的文本数据。数据的增加度为25%。&lt;/p&gt;&lt;br /&gt;     *&lt;br /&gt;     * @see Base85CharSet&lt;br /&gt;     * @see Base85Decoder&lt;br /&gt;     */&lt;br /&gt;    public class Base85Encoder {&lt;br /&gt;        /**&lt;br /&gt;         * 用String来编码&lt;br /&gt;         *&lt;br /&gt;         * @param src 原文&lt;br /&gt;         * @param charSet Base85字符集，默认为 Base85CharSet.RFC_1924&lt;br /&gt;         * @return 密文（原文编码后的数据）&lt;br /&gt;         *&lt;br /&gt;         * @see Base85CharSet#RFC_1924&lt;br /&gt;         */&lt;br /&gt;        public static function encode(src:String, charSet:Array = null):String {&lt;br /&gt;            // Convert string to ByteArray&lt;br /&gt;            var bytes:ByteArray = new ByteArray();&lt;br /&gt;            bytes.writeUTFBytes(src);&lt;br /&gt;            bytes.position = 0;&lt;br /&gt;            return encodeByteArray(bytes, charSet ? charSet : Base85CharSet.RFC_1924);&lt;br /&gt;        }&lt;br /&gt;       &lt;br /&gt;        /**&lt;br /&gt;         * 用ByteArray来编码&lt;br /&gt;         * @param data 原文的输入流&lt;br /&gt;         * @param charSet Base85字符集，默认为 Base85CharSet.RFC_1924&lt;br /&gt;         * @return 密文（原文编码后的数据）&lt;br /&gt;         *&lt;br /&gt;         * @see Base85CharSet#RFC_1924&lt;br /&gt;         */&lt;br /&gt;        public static function encodeByteArray(data:IDataInput, charSet:Array = null):String {&lt;br /&gt;            charSet = charSet ? charSet : Base85CharSet.RFC_1924;&lt;br /&gt;            // Initialise output&lt;br /&gt;            var output:String = "";                        //output&lt;br /&gt;            var srcLength:int = data.bytesAvailable;    //length of normal bytes&lt;br /&gt;            var endbytes:int = srcLength % 4;            //length of extra bytes.&lt;br /&gt;            var buf:uint;                                //encode buffer&lt;br /&gt;           &lt;br /&gt;            //set this var to correct value.(normal = all - extra)&lt;br /&gt;            srcLength -= endbytes;&lt;br /&gt;           &lt;br /&gt;            //encode normal group of bytes&lt;br /&gt;            for(var i:int = 0; i &lt; srcLength; i+=4) {&lt;br /&gt;                buf = data.readUnsignedInt();&lt;br /&gt;                output += charSet[buf % 85];&lt;br /&gt;                buf /= 85;&lt;br /&gt;                output += charSet[buf % 85];&lt;br /&gt;                buf /= 85;&lt;br /&gt;                output += charSet[buf % 85];&lt;br /&gt;                buf /= 85;&lt;br /&gt;                output += charSet[buf % 85];&lt;br /&gt;                buf /= 85;&lt;br /&gt;                output += charSet[buf % 85];&lt;br /&gt;            }&lt;br /&gt;           &lt;br /&gt;            //encode last group of bytes&lt;br /&gt;            buf = 0;&lt;br /&gt;            for(var j:int = 0; j &lt; endbytes; j++) {&lt;br /&gt;                buf = (buf &lt;&lt; 8) | data.readByte();&lt;br /&gt;            }&lt;br /&gt;            switch(endbytes) {&lt;br /&gt;                case 0:        //no extra byte&lt;br /&gt;                    break;&lt;br /&gt;                case 3:        //has 3 extra bytes&lt;br /&gt;                    output += charSet[buf % 85];&lt;br /&gt;                    buf /= 85;&lt;br /&gt;                case 2:        //has 2 extra bytes&lt;br /&gt;                    output += charSet[buf % 85];&lt;br /&gt;                    buf /= 85;&lt;br /&gt;                default:    //has 1 extra byte&lt;br /&gt;                    output += charSet[buf % 85];&lt;br /&gt;                    buf /= 85;&lt;br /&gt;                    output += charSet[buf % 85];&lt;br /&gt;            }&lt;br /&gt;            return output;&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;/pre&gt;&lt;/p&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>[AS3,I/O]Base85的字符集</title><link>http://assnippets.blogspot.com/2008/02/as3iobase85.html</link><category>I/O</category><author>noreply@blogger.com (Stephen)</author><pubDate>Wed, 6 Feb 2008 23:37:00 +0900</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-1347259298261066986.post-4771090100341981299</guid><description>&lt;p&gt;&lt;pre&gt;package advancedflex.io.format {&lt;br /&gt;    /**&lt;br /&gt;     * Base85的字符集(Character Set)&lt;br /&gt;     *&lt;br /&gt;     * @see http://rfc.net/rfc1924.html RFC-1924&lt;br /&gt;     * @see Base85Decoder&lt;br /&gt;     * @see Base85Encoder&lt;br /&gt;     */&lt;br /&gt;    public final class Base85CharSet {&lt;br /&gt;       &lt;br /&gt;        /**&lt;br /&gt;         * 在&lt;strong&gt;RFC-1924&lt;/strong&gt;里定义的一般的字符集(根据编码算字符)&lt;br /&gt;         */&lt;br /&gt;         //0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz!#$%&amp;amp;()*+-;&lt;=&gt;?@^_`{|}~&lt;br /&gt;        public static const RFC_1924:Array =&lt;br /&gt;        [&lt;br /&gt;            "0", "1", "2", "3", "4", "5", "6", "7", "8", "9",&lt;br /&gt;            "A", "B", "C", "D", "E", "F", "G", "H", "I", "J",&lt;br /&gt;            "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T",&lt;br /&gt;            "U", "V", "W", "X", "Y", "Z", "a", "b", "c", "d",&lt;br /&gt;            "e", "f", "g", "h", "i", "j", "k", "l", "m", "n",&lt;br /&gt;            "o", "p", "q", "r", "s", "t", "u", "v", "w", "x",&lt;br /&gt;            "y", "z", "!", "#", "$", "%", "&amp;amp;", "(", ")", "*",&lt;br /&gt;            "+", "-", ";", "&lt;", "=", "&gt;", "?", "@", "^", "_",&lt;br /&gt;            "`", "{", "|", "}", "~",&lt;br /&gt;        ];&lt;br /&gt;        /**&lt;br /&gt;         * 在&lt;strong&gt;RFC-1924&lt;/strong&gt;里定义的一般的逆字符集(根据字符算编码)&lt;br /&gt;         */&lt;br /&gt;        public static const DECODE_RFC_1924:Object =&lt;br /&gt;        {&lt;br /&gt;            "0":0,  "1":1,  "2":2,  "3":3,  "4":4,  "5":5,  "6":6,  "7":7,  "8":8, "9":9,&lt;br /&gt;            "A":10, "B":11, "C":12, "D":13, "E":14, "F":15, "G":16, "H":17, "I":18, "J":19,&lt;br /&gt;            "K":20, "L":21, "M":22, "N":23, "O":24, "P":25, "Q":26, "R":27, "S":28, "T":29,&lt;br /&gt;            "U":30, "V":31, "W":32, "X":33, "Y":34, "Z":35, "a":36, "b":37, "c":38, "d":39,&lt;br /&gt;            "e":40, "f":41, "g":42, "h":43, "i":44, "j":45, "k":46, "l":47, "m":48, "n":49,&lt;br /&gt;            "o":50, "p":51, "q":52, "r":53, "s":54, "t":55, "u":56, "v":57, "w":58, "x":59,&lt;br /&gt;            "y":60, "z":61, "!":62, "#":63, "$":64, "%":65, "&amp;amp;":66, "(":67, ")":68, "*":69,&lt;br /&gt;            "+":70, "-":71, ";":72, "&lt;":73, "=":74, "&gt;":75, "?":76, "@":77, "^":78, "_":79,&lt;br /&gt;            "`":80, "{":81, "|":82, "}":83, "~":84&lt;br /&gt;        };&lt;br /&gt;        /**&lt;br /&gt;         * 在&lt;strong&gt;ascii85&lt;/strong&gt;里定义的一般的字符集(根据编码算字符)&lt;br /&gt;         */&lt;br /&gt;         //!\"#$%&amp;amp;'()*+,-./0123456789:;&lt;=&gt;?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuv&lt;br /&gt;        public static const ASCII85:Array =&lt;br /&gt;        [&lt;br /&gt;            "!", "\"", "#", "$", "%", "&amp;amp;", "'", "(", ")", "*",&lt;br /&gt;            "+", ",",  "-", ".", "/", "0", "1", "2", "3", "4",&lt;br /&gt;            "5", "6",  "7", "8", "9", ":", ";", "&lt;", "=", "&gt;",&lt;br /&gt;            "?", "@",  "A", "B", "C", "D", "E", "F", "G", "H",&lt;br /&gt;            "I", "J",  "K", "L", "M", "N", "O", "P", "Q", "R",&lt;br /&gt;            "S", "T",  "U", "V", "W", "X", "Y", "Z", "[", "]",&lt;br /&gt;            "^", "_",  "`", "a", "b", "c", "d", "e", "f", "g",&lt;br /&gt;            "h", "i",  "j", "k", "l", "m", "n", "o", "p", "q",&lt;br /&gt;            "r", "s",  "t", "u", "v",&lt;br /&gt;        ];&lt;br /&gt;        /**&lt;br /&gt;         * 在&lt;strong&gt;ascii85&lt;/strong&gt;里定义的一般的字符集(根据编码算字符)&lt;br /&gt;         */&lt;br /&gt;        public static const DECODE_ASCII85:Object =&lt;br /&gt;        {&lt;br /&gt;            "!":0,  "\"":1, "#":2,  "$":3,  "%":4,  "&amp;amp;":5,  "'":6,  "(":7,  ")":8,  "*":9,&lt;br /&gt;            "+":10, ",":11, "-":12, ".":13, "/":14, "0":15, "1":16, "2":17, "3":18, "4":19,&lt;br /&gt;            "5":20, "6":21, "7":22, "8":23, "9":24, ":":25, ";":26, "&lt;":27, "=":28, "&gt;":29,&lt;br /&gt;            "?":30, "@":31, "A":32, "B":33, "C":34, "D":35, "E":36, "F":37, "G":38, "H":39,&lt;br /&gt;            "I":40, "J":41, "K":42, "L":43, "M":44, "N":45, "O":46, "P":47, "Q":48, "R":49,&lt;br /&gt;            "S":50, "T":51, "U":52, "V":53, "W":54, "X":55, "Y":56, "Z":57, "[":58, "]":59,&lt;br /&gt;            "^":60, "_":61, "`":62, "a":63, "b":64, "c":65, "d":66, "e":67, "f":68, "g":69,&lt;br /&gt;            "h":70, "i":71, "j":72, "k":73, "l":74, "m":75, "n":76, "o":77, "p":78, "q":79,&lt;br /&gt;            "r":80, "s":81, "t":82, "u":83, "v":84&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;/pre&gt;&lt;/p&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>[AS3,Event]实现 IEventDispatcher 接口的类模板</title><link>http://assnippets.blogspot.com/2008/02/as3event-ieventdispatcher.html</link><category>Event</category><author>noreply@blogger.com (Stephen)</author><pubDate>Tue, 5 Feb 2008 21:46:00 +0900</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-1347259298261066986.post-5691032268344128727</guid><description>&lt;p&gt;&lt;pre&gt;package {&lt;br /&gt;    import flash.events.IEventDispatcher;&lt;br /&gt;    import flash.events.Event;&lt;br /&gt;    import flash.events.EventDispatcher;&lt;br /&gt;&lt;br /&gt;    /**&lt;br /&gt;     * 抽象的 EventDispatcher。&lt;br /&gt;     * 实现 IEventDispatcher 接口的模板。&lt;br /&gt;     */&lt;br /&gt;    public class AbstractEventDispatcher implements IEventDispatcher {&lt;br /&gt;        protected var _listener:EventDispatcher;&lt;br /&gt;        public function AbstractEventDispatcher() {&lt;br /&gt;            _listener = new EventDispatcher(this);&lt;br /&gt;        }&lt;br /&gt;       &lt;br /&gt;        public function hasEventListener(type:String):Boolean {&lt;br /&gt;            return _listener.hasEventListener(type);&lt;br /&gt;        }&lt;br /&gt;       &lt;br /&gt;        public function willTrigger(type:String):Boolean {&lt;br /&gt;            return _listener.willTrigger(type);&lt;br /&gt;        }&lt;br /&gt;       &lt;br /&gt;        public function addEventListener(&lt;br /&gt;            type:String, listener:Function, useCapture:Boolean=false,&lt;br /&gt;            priority:int=0.0, useWeakReference:Boolean=false):void&lt;br /&gt;        {&lt;br /&gt;            _listener.addEventListener(&lt;br /&gt;                type, listener, useCapture,&lt;br /&gt;                priority, useWeakReference);&lt;br /&gt;        }&lt;br /&gt;       &lt;br /&gt;        public function removeEventListener(&lt;br /&gt;            type:String, listener:Function, useCapture:Boolean=false):void&lt;br /&gt;        {&lt;br /&gt;            _listener.removeEventListener(type, listener, useCapture);&lt;br /&gt;        }&lt;br /&gt;       &lt;br /&gt;        public function dispatchEvent(event:Event):Boolean {&lt;br /&gt;            return _listener.dispatchEvent(event);&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;/pre&gt;&lt;/p&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>[AS3,Display]全屏模式</title><link>http://assnippets.blogspot.com/2008/02/as3display.html</link><category>Display</category><author>noreply@blogger.com (Stephen)</author><pubDate>Mon, 4 Feb 2008 21:03:00 +0900</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-1347259298261066986.post-5568964746327843593</guid><description>&lt;p&gt;&lt;/p&gt;&lt;pre&gt;package advancedflex.core {&lt;br /&gt;   import flash.display.DisplayObject;&lt;br /&gt;   import flash.display.Stage;&lt;br /&gt;   import flash.display.StageDisplayState;&lt;br /&gt;   import flash.geom.Rectangle;&lt;br /&gt; &lt;br /&gt;   /**&lt;br /&gt;    * 全屏模式&lt;br /&gt;    */&lt;br /&gt;   public class FullScreen {&lt;br /&gt;     &lt;br /&gt;       /**&lt;br /&gt;        * 进入全屏模式。&lt;br /&gt;        *&lt;br /&gt;        * @param display 任意一个加入了 &lt;code&gt;displayList&lt;/code&gt; 的 &lt;code&gt;DisplayObject&lt;code&gt;。&lt;br /&gt;        */&lt;br /&gt;       public static function go(display:DisplayObject):void {&lt;br /&gt;           var stage:Stage = display.stage;&lt;br /&gt;           stage["fullScreenSourceRect"] = new Rectangle(0, 0, stage.width, stage.height);&lt;br /&gt;           stage.displayState = StageDisplayState.FULL_SCREEN;&lt;br /&gt;       }&lt;br /&gt;     &lt;br /&gt;       /**&lt;br /&gt;        * 退出全屏模式。&lt;br /&gt;        *&lt;br /&gt;        * @param display 任意一个加入了 &lt;code&gt;displayList&lt;/code&gt; 的 &lt;code&gt;DisplayObject&lt;code&gt;。&lt;br /&gt;        */&lt;br /&gt;       public static function back(display:DisplayObject):void {&lt;br /&gt;           display.stage.displayState = StageDisplayState.NORMAL;&lt;br /&gt;       }&lt;br /&gt;   }&lt;br /&gt;}&lt;/code&gt;&lt;/code&gt;&lt;/code&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;/p&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>[AS3,Math]微分</title><link>http://assnippets.blogspot.com/2008/02/as3math.html</link><category>Math</category><author>noreply@blogger.com (Stephen)</author><pubDate>Sun, 3 Feb 2008 21:10:00 +0900</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-1347259298261066986.post-766308654755763749</guid><description>&lt;p&gt;/**&lt;br /&gt; * 微分。&lt;br /&gt; *&lt;br /&gt; * @param f 被微分的函数&lt;br /&gt; * @param x x。&lt;br /&gt; * @param delta dx的大小。&lt;br /&gt; * @return f(x)的斜率。&lt;br /&gt; */&lt;br /&gt;&lt;pre&gt;public static function diff(f:Function, x:Number, delta:Number = 1e-8):Number {&lt;br /&gt;    return (f(x+delta) - f(x)) / delta;&lt;br /&gt;}&lt;/pre&gt;&lt;/p&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>[AS3]把32位整数转换为8为整数</title><link>http://assnippets.blogspot.com/2008/02/as3328.html</link><category>Number</category><author>noreply@blogger.com (Stephen)</author><pubDate>Sat, 2 Feb 2008 20:02:00 +0900</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-1347259298261066986.post-5185523105887168812</guid><description>&lt;p&gt;/**&lt;br /&gt; * 把32位整数转换为8为整数。&lt;br /&gt; *&lt;br /&gt; * @param n 32位整数&lt;br /&gt; * @return 8为整数&lt;br /&gt; */&lt;br /&gt;&lt;pre&gt;public function toByte(n:int):int {&lt;br /&gt;    if(n &gt; 0) {&lt;br /&gt;        return n &amp;amp; 0x8000007F;&lt;br /&gt;    } else {&lt;br /&gt;        return -(-n &amp;amp; 0x8000007F);&lt;br /&gt;    }&lt;br /&gt;}&lt;/pre&gt;&lt;/p&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>[AS3]把32位整数转换为16为整数</title><link>http://assnippets.blogspot.com/2008/02/as33216.html</link><category>Number</category><author>noreply@blogger.com (Stephen)</author><pubDate>Fri, 1 Feb 2008 21:19:00 +0900</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-1347259298261066986.post-2526592413313506992</guid><description>&lt;p&gt;/**&lt;br /&gt; * 把32位整数转换为16为整数。&lt;br /&gt; *&lt;br /&gt; * @param n 32位整数&lt;br /&gt; * @return 16为整数&lt;br /&gt; */&lt;br /&gt;&lt;pre&gt;public function toShort(n:int):int {&lt;br /&gt;    if(n &gt; 0) {&lt;br /&gt;        return n &amp;amp; 0x80007FFF;&lt;br /&gt;    } else {&lt;br /&gt;        return -(-n &amp;amp; 0x80007FFF);&lt;br /&gt;    }&lt;br /&gt;}&lt;/pre&gt;&lt;/p&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>[AS3]拟柱体数值积分</title><link>http://assnippets.blogspot.com/2008/01/blog-post.html</link><category>Math</category><author>noreply@blogger.com (Stephen)</author><pubDate>Thu, 31 Jan 2008 22:24:00 +0900</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-1347259298261066986.post-680667901883506858</guid><description>&lt;p&gt;/**&lt;br /&gt;* 在[a, b]间的拟柱体数值积分。&lt;br /&gt;&lt;br /&gt;* @param f 积分函数&lt;br /&gt;* @param a 左界限&lt;br /&gt;* @param b 右界限&lt;br /&gt;* @return [a, b]间的定积分&lt;br /&gt;*/&lt;br /&gt;&lt;/p&gt;&lt;pre&gt;public static function cylinderInte(f:Function, a:Number, b:Number):Number {&lt;br /&gt;   var h:Number = b-a;&lt;br /&gt;   return (h/6)*(f(a) + 4*f( (a+b) / 2 ) + f(b));&lt;br /&gt;}&lt;/pre&gt;&lt;p&gt;&lt;/p&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>加入 MXNA</title><link>http://assnippets.blogspot.com/2008/01/mxna.html</link><author>noreply@blogger.com (Stephen)</author><pubDate>Wed, 30 Jan 2008 21:52:00 +0900</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-1347259298261066986.post-7538759409406296482</guid><description>&lt;p&gt;今天我收到了来自 &lt;a href="http://weblogs.macromedia.com/mxna"&gt;MXNA&lt;/a&gt; 的邮件，正式加入了 MXNA。&lt;/p&gt;&lt;p&gt;MXNA 是一个关于 Adobe 产品的 Blog 聚合，包含了大量的 RIA 的内容。&lt;br /&gt;&lt;/p&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>[AS3]辛普森数值积分</title><link>http://assnippets.blogspot.com/2008/01/as3_30.html</link><category>Math</category><author>noreply@blogger.com (Stephen)</author><pubDate>Wed, 30 Jan 2008 21:49:00 +0900</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-1347259298261066986.post-8638786042301588081</guid><description>&lt;p&gt;/**&lt;br /&gt; * 在[a, b]间的辛普森数值积分&lt;br /&gt; * @param f 积分函数&lt;br /&gt; * @param a 左界限&lt;br /&gt; * @param b 右界限&lt;br /&gt; * @param n 分段数&lt;br /&gt; * @return [a, b]间的定积分&lt;br /&gt; */&lt;br /&gt;&lt;pre&gt;public static function simpsonInte(f:Function, a:Number, b:Number, n:int = 1024):Number {&lt;br /&gt; n*=2;//2n =&gt; n&lt;br /&gt; var h:Number = (b-a) / (n);&lt;br /&gt; var x1:Number = 0;&lt;br /&gt; var x2:Number = 0;&lt;br /&gt; n--;//2n-1 =&gt; n&lt;br /&gt; for(var i:int = 1; i&lt;n; i++/*i+=2 =&gt; i++*/) {&lt;br /&gt;  x1 += f(a + i*h);&lt;br /&gt;  i++;//i+1 =&gt; i&lt;br /&gt;  x2 += f(a + i*h);&lt;br /&gt; }&lt;br /&gt; return (h/3)*(f(a) + f(b) + 4*x1 + 2*x2);&lt;br /&gt;}&lt;/pre&gt;&lt;/p&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>[AS3]梯形数值积分</title><link>http://assnippets.blogspot.com/2008/01/as3_29.html</link><category>Math</category><author>noreply@blogger.com (Stephen)</author><pubDate>Tue, 29 Jan 2008 22:54:00 +0900</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-1347259298261066986.post-6855238130433310161</guid><description>&lt;p&gt;/**&lt;br /&gt; * 在[a, b]间的梯形数值积分&lt;br /&gt; * @param f 被积分函数&lt;br /&gt; * @param a 左界限&lt;br /&gt; * @param b 右界限&lt;br /&gt; * @param n 分段数&lt;br /&gt; * @return [a, b]间的定积分&lt;br /&gt; */&lt;br /&gt;&lt;pre&gt;public static function trapezoidalInte(f:Function, a:Number, b:Number,n:int = 1024):Number {&lt;br /&gt; var h:Number = (b-a) / n;&lt;br /&gt; var result:Number = 0;&lt;br /&gt; n--;//n-1 =&gt; n&lt;br /&gt; for(var i:int = 1; i&amp;lt;n; i++) {&lt;br /&gt;  result += f(a + i*h);&lt;br /&gt; }&lt;br /&gt; return (h/2)*(f(a) + f(b) + 2*result);&lt;br /&gt;}&lt;/pre&gt;&lt;/p&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>[AS3]忽略符号的四舍五入</title><link>http://assnippets.blogspot.com/2008/01/as3_28.html</link><category>Math</category><author>noreply@blogger.com (Stephen)</author><pubDate>Mon, 28 Jan 2008 21:29:00 +0900</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-1347259298261066986.post-4917060399408968458</guid><description>&lt;p&gt;/**&lt;br /&gt; * 忽略符号的四舍五入。&lt;br /&gt; * &lt;br /&gt; * &lt;code&gt;AMath.rint(1.2) //-&gt; 1&lt;br /&gt; * AMath.rint(-1.2)//-&gt; -1&lt;br /&gt; * AMath.rint(1.7) //-&gt; 2&lt;br /&gt; * AMath.rint(-1.7)//-&gt; -2&lt;/code&gt;&lt;br /&gt; * @param v a Number&lt;br /&gt; * @return Rounded Nuumber.&lt;br /&gt; */&lt;br /&gt;&lt;pre&gt;public static function rint(v:Number):int {&lt;br /&gt; if(v &gt; 0) {&lt;br /&gt;  return int(v + 0.5);&lt;br /&gt; }&lt;br /&gt; if(v &lt; 0) {&lt;br /&gt;  return -int(-v + 0.5);&lt;br /&gt; }else{&lt;br /&gt;  return 0;&lt;br /&gt; }&lt;br /&gt;}&lt;/pre&gt;&lt;/p&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>[AS3]截取 ByteArray 中某一范围的元素</title><link>http://assnippets.blogspot.com/2008/01/as3-bytearray_27.html</link><category>ByteArray</category><author>noreply@blogger.com (Stephen)</author><pubDate>Sun, 27 Jan 2008 14:18:00 +0900</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-1347259298261066986.post-4088775599393793323</guid><description>&lt;p&gt;/**&lt;br /&gt; * 截取原始 &lt;code&gt;ByteArray&lt;/code&gt; 中某一范围的元素构成的新 &lt;code&gt;ByteArray&lt;/code&gt;。&lt;br /&gt; * 返回的 &lt;code&gt;ByteArray&lt;/code&gt; 包括 start 元素以及从其开始到 end 元素（但不包括该元素）的所有元素。&lt;br /&gt; * &lt;br /&gt; * @param bytes 原始 &lt;code&gt;ByteArray&lt;/code&gt;&lt;br /&gt; * @param result 返回指针，如果为 &lt;code&gt;null&lt;/code&gt;，将会创建新的 &lt;code&gt;ByteArray&lt;/code&gt;。&lt;br /&gt; * @param start 开始下标，负数表示从后面开始数。&lt;br /&gt; * @param end 结束下标，负数表示从后面开始数。&lt;br /&gt; * @return result&lt;br /&gt; */&lt;br /&gt;&lt;pre&gt;public static function slice(&lt;br /&gt; bytes:ByteArray, result:IDataOutput = null, &lt;br /&gt; start:int = 0, end:int = -1):IDataOutput&lt;br /&gt;{&lt;br /&gt; if(!bytes) {&lt;br /&gt;  throw new ArgumentError("Param:&lt;bytes&gt; must not be null.");&lt;br /&gt; }&lt;br /&gt; var totalLength:int = bytes.length;&lt;br /&gt; if(!result) result = new ByteArray();&lt;br /&gt; if(start&lt;0) start = totalLength + start;&lt;br /&gt; if(end&lt;0) end = totalLength + end;&lt;br /&gt; var length:int = end - start + 1;&lt;br /&gt; result.writeBytes(bytes, start, length);&lt;br /&gt; return result;&lt;br /&gt;}&lt;/pre&gt;&lt;/p&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>[AS3]颜色反转滤镜</title><link>http://assnippets.blogspot.com/2008/01/as3_26.html</link><category>Graphics</category><author>noreply@blogger.com (Stephen)</author><pubDate>Sat, 26 Jan 2008 19:06:00 +0900</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-1347259298261066986.post-2044220331911540240</guid><description>&lt;p&gt;需要 &lt;a href="http://assnippets.blogspot.com/2008/01/as3_25.html"&gt;&lt;code&gt;IBitmapFilterFactory&lt;/code&gt;&lt;/a&gt;。&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;package advancedflex.graphics.images.filters {&lt;br /&gt; &lt;br /&gt; import flash.filters.BitmapFilter;&lt;br /&gt; import flash.filters.ColorMatrixFilter;&lt;br /&gt;&lt;br /&gt; /**&lt;br /&gt;  * 颜色反转工厂。&lt;br /&gt;  * &lt;p&gt;&lt;strong&gt;它是AFGL(Advanced Flex Graphics Library)的一部分。&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;  */&lt;br /&gt; public class ReversesFilterFactory implements IBitmapFilterFactory {&lt;br /&gt;  &lt;br /&gt;  /* The Reverses Matrix */&lt;br /&gt;  private static const $MATRIX:Array = [&lt;br /&gt;   -1, 0, 0, 0, 255,&lt;br /&gt;    0,-1, 0, 0, 255,&lt;br /&gt;    0, 0,-1, 0, 255,&lt;br /&gt;    0, 0, 0, 1, 0,&lt;br /&gt;  ];&lt;br /&gt;  &lt;br /&gt;  /**&lt;br /&gt;   * 创建滤镜。&lt;br /&gt;   * @return 滤镜。&lt;br /&gt;   */&lt;br /&gt;  public function create():BitmapFilter {&lt;br /&gt;   return new ColorMatrixFilter($MATRIX);&lt;br /&gt;  }&lt;br /&gt;  &lt;br /&gt;  /**&lt;br /&gt;   * 释放滤镜工厂占用的大内存，但实际上什么也不做。&lt;br /&gt;   * 调用后在调用其他方法时也不会发成错误。&lt;br /&gt;   */&lt;br /&gt;  public function dispose():void {&lt;br /&gt;   //Do Nothing.&lt;br /&gt;  }&lt;br /&gt;  &lt;br /&gt;  /**&lt;br /&gt;   * 返回 ReversesFilterFactory 对象，&lt;br /&gt;   * 它是与原始 ReversesFilterFactory 对象完全相同的副本。&lt;br /&gt;   * @return ReversesFilterFactory 对象。&lt;br /&gt;   */&lt;br /&gt;  public function clone():IBitmapFilterFactory {&lt;br /&gt;   return new ReversesFilterFactory();&lt;br /&gt;  }&lt;br /&gt;  &lt;br /&gt; }&lt;br /&gt;}&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>[AS3]图像滤镜效果的接口</title><link>http://assnippets.blogspot.com/2008/01/as3_25.html</link><category>Graphics</category><author>noreply@blogger.com (Stephen)</author><pubDate>Fri, 25 Jan 2008 22:19:00 +0900</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-1347259298261066986.post-8601928180846030289</guid><description>&lt;p&gt;这个类为今后将会发布的图像滤镜效果的接口。&lt;/p&gt;&lt;p&gt;&lt;pre&gt;&lt;code&gt;package advancedflex.graphics.images.filters {&lt;br /&gt; &lt;br /&gt; import flash.filters.BitmapFilter;&lt;br /&gt; &lt;br /&gt; /**&lt;br /&gt;  * IBitmapFilterFactory 类是所有图像滤镜效果工厂的接口。&lt;br /&gt;  * 他可以创建各种 BitmapFilter。&lt;br /&gt;  * &lt;strong&gt;它是AFGL(Advanced Flex Graphics Library)的一部分。&lt;/strong&gt;&lt;br /&gt;  */&lt;br /&gt; public interface IBitmapFilterFactory {&lt;br /&gt;  &lt;br /&gt;  /**&lt;br /&gt;   * 创建滤镜。&lt;br /&gt;   * @return 滤镜。&lt;br /&gt;   */&lt;br /&gt;  function create():BitmapFilter;&lt;br /&gt;  &lt;br /&gt;  /**&lt;br /&gt;   * 返回 IBitmapFilterFactory 对象，&lt;br /&gt;   * 它是与原始 IBitmapFilterFactory 对象完全相同的副本。&lt;br /&gt;   * @return IBitmapFilterFactory 对象。&lt;br /&gt;   */&lt;br /&gt;  function clone():IBitmapFilterFactory;&lt;br /&gt;  &lt;br /&gt;  /**&lt;br /&gt;   * 释放滤镜工厂占用的大内存(如果有的话)。&lt;br /&gt;   * 对 BitmapFilterFactory 调用 dispose() 方法时，&lt;br /&gt;   * 对此 BitmapFilterFactory 实例的方法或属性的所有后续调用都将失败，并引发异常。&lt;br /&gt;   */&lt;br /&gt;  function dispose():void;&lt;br /&gt; }&lt;br /&gt;}&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>[AS3]生成呈高斯分布的伪随机数(2)</title><link>http://assnippets.blogspot.com/2008/01/as3_24.html</link><category>Math</category><category>Number</category><author>noreply@blogger.com (Stephen)</author><pubDate>Thu, 24 Jan 2008 22:59:00 +0900</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-1347259298261066986.post-4659951460481649649</guid><description>&lt;p&gt;/**&lt;br /&gt; * 用极坐标法(polar method)生成一个呈高斯分布的伪随机数。&lt;br /&gt; * &lt;br /&gt; * 这使用了 G. E. P. Box、M. E. Muller 和 G. Marsaglia 的极坐标法，&lt;br /&gt; * 该方法在 Donald E. Knuth 的 The Art of Computer Programming, &lt;br /&gt; * Volume 3:Seminumerical Algorithms 的第 3.4.1 节，小节 C，算法 P 中进行了描述。&lt;br /&gt; * 注意，它只需调用一次 &lt;code&gt;Math.log&lt;/code&gt; 和调用一次 &lt;code&gt;Math.sqrt&lt;/code&gt; 就可以生成两个独立的值&lt;br /&gt; * &lt;br /&gt; * @param mu 平均值μ&lt;br /&gt; * @param sigma 标准差σ^2&lt;br /&gt; * &lt;br /&gt; * @return 伪随机数。&lt;br /&gt; */&lt;br /&gt;&lt;pre&gt;&lt;code&gt;public static function getGaussian2(mu:Number = 0, sigma:Number = 1):Number {&lt;br /&gt; if (haveNextNextGaussian) {&lt;br /&gt;  haveNextNextGaussian = false;&lt;br /&gt;   return nextNextGaussian;&lt;br /&gt; } else {&lt;br /&gt;  var v1:Number, v2:Number, s:Number;&lt;br /&gt;  do {&lt;br /&gt;   v1 = 2 * Math.random() - 1; // between -1.0 and 1.0&lt;br /&gt;   v2 = 2 * Math.random() - 1; // between -1.0 and 1.0&lt;br /&gt;    s = v1 * v1 + v2 * v2;&lt;br /&gt;  } while (s &gt;= 1 || s == 0);&lt;br /&gt;  var multiplier:Number = Math.sqrt(-2 * Math.log(s)/s);&lt;br /&gt;  nextNextGaussian = v2 * multiplier;&lt;br /&gt;  haveNextNextGaussian = true;&lt;br /&gt;  return v1*multiplier*sigma + mu;&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;private static var nextNextGaussian:Number;&lt;br /&gt;private static var haveNextNextGaussian:Boolean = false;&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>[AS3]生成呈高斯分布的伪随机数</title><link>http://assnippets.blogspot.com/2008/01/as3_23.html</link><category>Math</category><category>Number</category><author>noreply@blogger.com (Stephen)</author><pubDate>Wed, 23 Jan 2008 21:33:00 +0900</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-1347259298261066986.post-6549576895284694321</guid><description>&lt;p&gt;/**&lt;br /&gt; * 用雅可比变换生成一个呈高斯分布的伪随机数。&lt;br /&gt; * &lt;br /&gt; * @param mu 平均值μ&lt;br /&gt; * @param sigma 标准差σ^2&lt;br /&gt; * @return 伪随机数。&lt;br /&gt; */&lt;br /&gt;&lt;pre&gt;&lt;code&gt;public static function getGaussian(mu:Number = 0, sigma:Number = 1):Number {&lt;br /&gt; var r1:Number = Math.random();&lt;br /&gt; var r2:Number = Math.random();&lt;br /&gt; return Math.sqrt( -2*Math.log(r1) ) * Math.cos( 2*Math.PI*r2 ) * sigma+mu;&lt;br /&gt;}&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>[AS3]根据名字得到类</title><link>http://assnippets.blogspot.com/2008/01/as3_22.html</link><category>Class</category><author>noreply@blogger.com (Stephen)</author><pubDate>Tue, 22 Jan 2008 22:53:00 +0900</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-1347259298261066986.post-145832390283486081</guid><description>&lt;p&gt;/**&lt;br /&gt; * 根据名字得到类。它包括使用 &lt;code&gt;registerClassAlias&lt;/code&gt; 定义的类。&lt;br /&gt; * 它相当于 Java 中的 &lt;code&gt;Class.forName&lt;/code&gt;。&lt;br /&gt; * @param name 类的名字。&lt;br /&gt; * @return 类。&lt;br /&gt; * @see flash.utils.getDefinitionByName&lt;br /&gt; * @see flash.net.getClassByAlias&lt;br /&gt; */&lt;br /&gt;&lt;pre&gt;public static function forName(name:String):Class {&lt;br /&gt; try {&lt;br /&gt;  return getDefinitionByName(name) as Class;&lt;br /&gt; } catch(e:ReferenceError) {&lt;br /&gt;  try {&lt;br /&gt;   return getClassByAlias(name);&lt;br /&gt;  } catch(e2:ReferenceError) {&lt;br /&gt;   throw new ReferenceError("There is not such a class:&lt;"+name+"&gt;.");&lt;br /&gt;  }&lt;br /&gt; }&lt;br /&gt; return null;&lt;br /&gt;}&lt;/pre&gt;&lt;/p&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>[AS3]使用黄金分割查找法来搜索数组的元素</title><link>http://assnippets.blogspot.com/2008/01/as3_21.html</link><category>Array</category><category>Number</category><author>noreply@blogger.com (Stephen)</author><pubDate>Mon, 21 Jan 2008 22:22:00 +0900</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-1347259298261066986.post-2696105250697789653</guid><description>&lt;p&gt;需要&lt;code&gt;FloatUtil.equals&lt;/code&gt;，请参照&lt;a href="http://assnippets.blogspot.com/2008/01/as3_05.html"&gt;[AS3]判断两个浮点小数的数组是否相等&lt;/a&gt;。&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Class&lt;/strong&gt; : &lt;code&gt;advancedflex.utils.FloatArrayUtil&lt;/code&gt;&lt;/p&gt;&lt;p&gt;/**&lt;br /&gt;* 使用黄金分割查找法来搜索数组的元素。&lt;br /&gt;*&lt;br /&gt;* @param sortedArray 排成升序(从小到大)的数组。&lt;br /&gt;* @param value 要查找的值。&lt;br /&gt;* @param tol 浮点小数的计算误差。&lt;br /&gt;* @return 元素的下标。如果没有，则返回 -1。&lt;br /&gt;*/&lt;br /&gt;&lt;/p&gt;&lt;pre&gt;&lt;code&gt;public static function gsearch(sortedArray:Array, value:Number, tol:Number = 1e-12):int {&lt;br /&gt; if(!sortedArray) {&lt;br /&gt;  throw new ArgumentError("Param:&lt;sortedArray&gt; must not be null.");&lt;br /&gt; }&lt;br /&gt; return $gsearch(sortedArray, value, tol, 0, sortedArray.length);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;/**&lt;br /&gt; * @private&lt;br /&gt; */&lt;br /&gt;private static const $LEFT_RATIO:Number = 0.6180339887498949;&lt;br /&gt;&lt;br /&gt;/**&lt;br /&gt; * @private&lt;br /&gt; */&lt;br /&gt;private static const $RIGHT_RATIO:Number = 1 - $LEFT_RATIO;&lt;br /&gt;&lt;br /&gt; /**&lt;br /&gt; * @private&lt;br /&gt; * 使用黄金分割查找法来搜索数组的元素。&lt;br /&gt; * &lt;br /&gt; * @param sortedArray 排成升序(从小到大)的数组。&lt;br /&gt; * @param value 要查找的值。&lt;br /&gt; * @param tol 浮点小数的计算误差。&lt;br /&gt; * @param left 查找的最左边。&lt;br /&gt; * @param right 查找的最右边。&lt;br /&gt; * @return 元素的下标。如果没有，则返回 -1。&lt;br /&gt; */&lt;br /&gt;private static function $gsearch(&lt;br /&gt; sortedArray:Array, value:Number, tol:Number,&lt;br /&gt; left:int, right:int):int &lt;br /&gt;{&lt;br /&gt; if(right - left &lt;= 1) {&lt;br /&gt;  return FloatUtil.equals(sortedArray[left], value, tol) ? left :&lt;br /&gt;   FloatUtil.equals(sortedArray[right], value, tol) ? left :&lt;br /&gt;   -1;&lt;br /&gt; }&lt;br /&gt; var center:int = $RIGHT_RATIO*left + $LEFT_RATIO*right&lt;br /&gt; switch(FloatUtil.compare(sortedArray[center], value, tol)) {&lt;br /&gt;  case 1 :&lt;br /&gt;   return $gsearch(sortedArray, value, tol, left, center);&lt;br /&gt;  case -1:&lt;br /&gt;   return $gsearch(sortedArray, value, tol, center, right);&lt;br /&gt;  default:&lt;br /&gt;   return center;&lt;br /&gt; }&lt;br /&gt;}&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>[AS3]使用二分法查找法来搜索数组的元素</title><link>http://assnippets.blogspot.com/2008/01/as3_20.html</link><category>Array</category><category>Number</category><author>noreply@blogger.com (Stephen)</author><pubDate>Sun, 20 Jan 2008 21:52:00 +0900</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-1347259298261066986.post-103824219576424944</guid><description>&lt;p&gt;需要&lt;code&gt;FloatUtil.equals&lt;/code&gt;，请参照&lt;a href="http://assnippets.blogspot.com/2008/01/as3_05.html"&gt;[AS3]判断两个浮点小数的数组是否相等&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Class&lt;/strong&gt; : &lt;code&gt;advancedflex.utils.FloatArrayUtil&lt;/ocde&gt;&lt;/p&gt;&lt;p&gt;/**&lt;br /&gt; * 使用二分查找法来搜索数组的元素。&lt;br /&gt; * &lt;br /&gt; * @param sortedArray 排成升序(从小到大)的数组。&lt;br /&gt; * @param value 要查找的值。&lt;br /&gt; * @param tol 浮点小数的计算误差。&lt;br /&gt; * @return 元素的下标。如果没有，则返回 &lt;code&gt;-1&lt;/code&gt;。&lt;br /&gt; * @throws ArgumentError 如果 &lt;code&gt;sortedArray&lt;/code&gt; 为 &lt;code&gt;null&lt;/code&gt;。&lt;br /&gt; */&lt;br /&gt;&lt;pre&gt;&lt;code&gt;public static function bsearch(sortedArray:Array, value:Number, tol:Number = 1e-12):int {&lt;br /&gt; if(!sortedArray) {&lt;br /&gt;  throw new ArgumentError("Param:&lt;sortedArray&gt; must not be null.");&lt;br /&gt; }&lt;br /&gt; return $bsearch(sortedArray, value, tol, 0, sortedArray.length-1);&lt;br /&gt;}&lt;br /&gt;/**&lt;br /&gt; * @private&lt;br /&gt; * 使用二分查找法来搜索数组的元素。&lt;br /&gt; * &lt;br /&gt; * @param sortedArray 排成升序(从小到大)的数组。&lt;br /&gt; * @param value 要查找的值。&lt;br /&gt; * @param tol 浮点小数的计算误差。&lt;br /&gt; * @param left 查找的最左边。&lt;br /&gt; * @param right 查找的最右边。&lt;br /&gt; * @return 元素的下标。如果没有，则返回 -1。&lt;br /&gt; */&lt;br /&gt;private static function $bsearch(&lt;br /&gt; sortedArray:Array, value:Number, tol:Number,&lt;br /&gt; left:int, right:int):int &lt;br /&gt;{&lt;br /&gt; if(right - left &lt;= 1) {&lt;br /&gt;  return FloatUtil.equals(sortedArray[left], value, tol) ? left :&lt;br /&gt;   FloatUtil.equals(sortedArray[right], value, tol) ? left :&lt;br /&gt;   -1;&lt;br /&gt; }&lt;br /&gt; var center:int = (left+right)/2;&lt;br /&gt; switch(FloatUtil.compare(sortedArray[center], value, tol)) {&lt;br /&gt;  case 1 :&lt;br /&gt;   return $bsearch(sortedArray, value, tol, left, center);&lt;br /&gt;  case -1:&lt;br /&gt;   return $bsearch(sortedArray, value, tol, center, right);&lt;br /&gt;  default:&lt;br /&gt;   return center;&lt;br /&gt; }&lt;br /&gt;}&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>[AS3]判断两个对象的数据类型是否一样</title><link>http://assnippets.blogspot.com/2008/01/as3_19.html</link><category>Object</category><author>noreply@blogger.com (Stephen)</author><pubDate>Sat, 19 Jan 2008 22:45:00 +0900</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-1347259298261066986.post-6896810940001648113</guid><description>&lt;p&gt;/**&lt;br /&gt; * 判断两个对象的数据类型是否一样。&lt;br /&gt; * &lt;br /&gt; * @param a 一个对象。&lt;br /&gt; * @param b 另一个对象。&lt;br /&gt; * @return 如果一样，返回 &lt;code&gt;true&lt;/code&gt;；否则返回 &lt;code&gt;false&lt;/code&gt;。&lt;br /&gt; */&lt;br /&gt;&lt;pre&gt;&lt;code&gt;public static function eqType(a:Object, b:Object):Boolean {&lt;br /&gt; return  a === b&lt;br /&gt;  || describeType(a).@name == describeType(b).@name;&lt;br /&gt;}&lt;/code&gt;&lt;/pre&gt;&lt;/p&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item></channel></rss>