<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet href='http://feed.l4cd.net/styles/feedsky6.xsl' type='text/xsl' ?><!--这是一个由Feedsy提供技术支持的Feed，为了提高读者阅读的体验，以及满足用户美化自己Feed的需要，我们设计了多种精美的Feed模板，提供给大家选择，所有最终呈现出来的样式，皆由用户自愿选择使用，未经许可，任何团体和个人，请不要擅自修改样式或者盗用，这是对于用户选择权的尊重。--><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:fs="http://www.feedsky.com/namespace/feed" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><atom:link href="http://feed.l4cd.net" type="application/rss+xml" rel="self"></atom:link><fs:self_link href="http://feed.feedsky.com/l4cd" type="application/rss+xml"></fs:self_link><lastBuildDate>Thu, 02 Sep 2010 07:02:46 GMT</lastBuildDate><title>L4cd.Net 简单工作</title><description>ACTIONSCRIPT,FLEX,FLASH,AIR,FMS</description><image><url>http://www.feedsky.com/feed/l4cd/sc/gif</url><title>L4cd.Net 简单工作</title><link>http://l4cd.net</link></image><link>http://l4cd.net</link><sy:updatePeriod>hourly</sy:updatePeriod><sy:updateFrequency>1</sy:updateFrequency><language>en</language><pubDate>Thu, 02 Sep 2010 07:12:57 GMT</pubDate><item><title>第5届 FLASH开发者交流会 暨FLASH CAMP 2010</title><link>http://item.feedsky.com/~feedsky/l4cd/~8303221/408799425/5931248/1/item.html</link><content:encoded>&lt;p&gt;&lt;img src=&quot;http://i889.photobucket.com/albums/ac91/wedoswf/banner_flashcamp.gif&quot; alt=&quot;&quot; width=&quot;600&quot; /&gt;&lt;br /&gt;
第5届的《FLASH开发者交流会 暨FLASH CAMP 2010》将于9月18日在上海举行~&lt;br /&gt;
历届的开发交流会都为FLASH爱好者提供了各类FLASH相关的主题讲座与讨论~&lt;br /&gt;
这一届也不例外~&lt;br /&gt;
&lt;b&gt;#Adobe 平台技术&lt;br /&gt;
#程序接口的另类理解与使用 (&lt;a href=&quot;http://www.xiaos8.com&quot;&gt;小S主讲~推荐之&lt;/a&gt;)&lt;br /&gt;
#Flash Media Server 开发经验谈&lt;br /&gt;
#Flash RIA的可用性&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;除了上面这些精彩的主题外~~&lt;br /&gt;
此届还加入了麻球大赛的相关主题&lt;br /&gt;
&lt;b&gt;#麻球大赛优秀作品介绍&lt;br /&gt;
#麻球参赛游戏蛛蛛冒险的开发与设计经验分享&lt;br /&gt;
#麻球参赛游戏DNF，梦幻塔防，吖凡哒哒技术与美工经验分享&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;分别是关于麻球网(Mochi Media)平台的介绍与参赛游戏的经验介绍~&lt;br /&gt;
对麻球网(Mochi Media)平台有兴趣的FLASHER千万别错过~&lt;/p&gt;
&lt;p&gt;活动地址:&lt;a href=&quot;http://www.wedoswf.com/events/1&quot;&gt;http://www.wedoswf.com/events/1&lt;/a&gt;&lt;br /&gt;
直接报名:&lt;a href=&quot;http://www.wedoswf.com/events/1/join&quot;&gt;http://www.wedoswf.com/events/1/join&lt;/a&gt;&lt;/p&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/408799425/l4cd/feedsky/s.gif?r=http://item.feedsky.com/~feedsky/l4cd/~8303221/408799425/5931248/1/item.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/l4cd/408799425/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/l4cd/408799425/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</content:encoded><wfw:commentRss>http://l4cd.net/blog/post-the-5th-exchange-flash-developer.html/feed</wfw:commentRss><slash:comments>0</slash:comments><description>第5届的《FLASH开发者交流会 暨FLASH CAMP 2010》将于9月18日在上海举行~ 历届的开发交流会都为FLASH爱好者提供了各类FLASH相关的主题讲座与讨论~ 这一届也不例外~ #Adobe 平台技术 #程序接口的另类理解与使用 (小S主讲~推荐之) #Flash Media Server 开发经验谈 #Flash RIA的可用性 除了上面这些精彩的主题外~~ 此届还加入了麻球大赛的相关主题 #麻球大赛优秀作品介绍 #麻球参赛游戏蛛蛛冒险的开发与设计经验分享 #麻球参赛游戏DNF，梦幻塔防，吖凡哒哒技术与美工经验分享 分别是关于麻球网(Mochi Media)平台的介绍与参赛游戏的经验介绍~ 对麻球网(Mochi Media)平台有兴趣的FLASHER千万别错过~ 活动地址:http://www.wedoswf.com/events/1 直接报名:http://www.wedoswf.com/events/1/join&lt;img src=&quot;http://www1.feedsky.com/t1/408799425/l4cd/feedsky/s.gif?r=http://item.feedsky.com/~feedsky/l4cd/~8303221/408799425/5931248/1/item.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/l4cd/408799425/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/l4cd/408799425/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category>FLASH</category><category>交流会</category><category>CAMP</category><category>开发者</category><pubDate>Thu, 02 Sep 2010 15:02:46 +0800</pubDate><author>L4CD.NET</author><comments>http://l4cd.net/blog/post-the-5th-exchange-flash-developer.html#comments</comments><guid isPermaLink="false">http://l4cd.net/?p=1480</guid><dc:creator>L4CD.NET</dc:creator><fs:srclink>http://l4cd.net/blog/post-the-5th-exchange-flash-developer.html</fs:srclink><fs:srcfeed>http://l4cd.net/feed</fs:srcfeed><fs:itemid>feedsky/l4cd/~8303221/408799425/5931248</fs:itemid></item><item><title>墙外~</title><link>http://item.feedsky.com/~feedsky/l4cd/~8303221/408799426/5931248/1/item.html</link><content:encoded>&lt;p&gt;经过昨晚一晚的粪战~&lt;br /&gt;
终于把博客搬到了墙外~&lt;br /&gt;
访问地址依然不变~&lt;br /&gt;
不过以后只能用l4cd.net为主域名~&lt;br /&gt;
其它子域名将自动重定向至此~&lt;/p&gt;
&lt;p&gt;速度不是很理想~&lt;br /&gt;
不过相对G~F~W~下的空间提供商~&lt;br /&gt;
至少以后没了敏感词的烦恼~&lt;br /&gt;
希望不会在不久的某一天被和谐掉~&lt;/p&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/408799426/l4cd/feedsky/s.gif?r=http://item.feedsky.com/~feedsky/l4cd/~8303221/408799426/5931248/1/item.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/l4cd/408799426/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/l4cd/408799426/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</content:encoded><wfw:commentRss>http://l4cd.net/blog/post-the-other-side-of-the-wall.html/feed</wfw:commentRss><slash:comments>4</slash:comments><description>经过昨晚一晚的粪战~ 终于把博客搬到了墙外~ 访问地址依然不变~ 不过以后只能用l4cd.net为主域名~ 其它子域名将自动重定向至此~ 速度不是很理想~ 不过相对G~F~W~下的空间提供商~ 至少以后没了敏感词的烦恼~ 希望不会在不久的某一天被和谐掉~&lt;img src=&quot;http://www1.feedsky.com/t1/408799426/l4cd/feedsky/s.gif?r=http://item.feedsky.com/~feedsky/l4cd/~8303221/408799426/5931248/1/item.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/l4cd/408799426/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/l4cd/408799426/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category>OTHER</category><category>墙</category><pubDate>Mon, 19 Jul 2010 13:14:32 +0800</pubDate><author>L4CD.NET</author><comments>http://l4cd.net/blog/post-the-other-side-of-the-wall.html#comments</comments><guid isPermaLink="false">http://l4cd.net/?p=1461</guid><dc:creator>L4CD.NET</dc:creator><fs:srclink>http://l4cd.net/blog/post-the-other-side-of-the-wall.html</fs:srclink><fs:srcfeed>http://l4cd.net/feed</fs:srcfeed><fs:itemid>feedsky/l4cd/~8303221/408799426/5931248</fs:itemid></item><item><title>BitmapText,美术字处理方案</title><link>http://item.feedsky.com/~feedsky/l4cd/~8303221/408799427/5931248/1/item.html</link><content:encoded>&lt;p&gt;游戏开发中..常常需要显示特殊的美术字体..&lt;br /&gt;
像经验数字~扣血扣蓝~倒计时等~&lt;br /&gt;
像一般的基于字体的美术字~只需要嵌入字体即可~&lt;br /&gt;
但像下面这类纯手工的美术字~&lt;br /&gt;
&lt;img src=&quot;https://dl-web.dropbox.com/u/1184383/blog/post/2010/post-bitmaptext-art-word-processing/number.png&quot; alt=&quot;art word&quot; /&gt;&lt;/p&gt;
&lt;p&gt;处理起来就没有这么方便..&lt;/p&gt;
&lt;p&gt;常见的方案一般为截取相应位置的bitmap数据..&lt;br /&gt;
然后重新拼成需要的内容..再显示之~&lt;/p&gt;
&lt;p&gt;效果如下(可在下方的输出框内输出数字试试)：&lt;br /&gt;
&lt;script type=&quot;text/javascript&quot;&gt;// &lt;![CDATA[&lt;/p&gt;
&lt;p&gt;flash(null,&quot;https://dl-web.dropbox.com/u/1184383/blog/post/2010/post-bitmaptext-art-word-processing/BitmapTextExample.swf&quot;,550,200,&quot;9.0.115&quot;,true);
// ]]&amp;gt;&lt;/script&gt;&lt;br /&gt;
第一行的数字是&lt;strong&gt;不忽略透明空白&lt;/strong&gt;,第二行则是&lt;strong&gt;忽略透明空白&lt;/strong&gt;,对比一下应该就能明白了&lt;/p&gt;
&lt;p&gt;下面是源码..代码很简单..我就不多说了..&lt;br /&gt;
&lt;span id=&quot;more-1407&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre class=&quot;brush: as3;&quot;&gt;
package
{
	import flash.display.Bitmap;
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.text.TextField;
	import flash.text.TextFormat;

	import net.l4cd.display.BitmapText;

	[SWF(backgroundColor=&quot;#FFFFFF&quot;,width=&quot;550&quot;,height=&quot;200&quot;)]

	/**
	 * BitmapTextExample
	 * @author l4cd
	 * @website http://l4cd.net
	 */
	public class BitmapTextExample extends Sprite
	{
		[Embed(source=&quot;number.png&quot;)]
		private var BitmapTextClass:Class;

		private var bt1:BitmapText;
		private var bt2:BitmapText;
		public function BitmapTextExample()
		{
			//不忽略透明空白
			bt1 = new BitmapText((new BitmapTextClass as Bitmap).bitmapData,50,50,0,false,&quot;0123456789&quot;);
			addChild(bt1);
			bt1.x = 20;
			bt1.y = 10;

			//忽略透明空白
			bt2 = new BitmapText((new BitmapTextClass as Bitmap).bitmapData,50,50,0,true,&quot;0123456789&quot;);
			addChild(bt2);
			bt2.x = 20;
			bt2.y = 80;

			bt1.text = &quot;152443004&quot;;
			bt2.text = &quot;152443004&quot;;

			graphics.beginFill(0xCCCCCC);
			graphics.drawRect(0,150,550,50);

			var txt:TextField = new TextField();
			txt.defaultTextFormat = new TextFormat(&quot;宋体&quot;,12);
			txt.background = true;
			txt.backgroundColor = 0xFFFFFF;
			txt.multiline = false;
			txt.border = true;
			txt.borderColor = 0xCCCCCC;
			txt.type = &quot;input&quot;;
			txt.width = 200;
			txt.height = 16;
			txt.x = 20;
			txt.y = 165;
			txt.restrict = &quot;0-9&quot;;
			txt.text = &quot;152443004&quot;;
			addChild(txt);
			txt.addEventListener(Event.CHANGE,_txtChanged);
		}

		private function _txtChanged(e:Event):void
		{
			bt1.text = bt2.text = e.target.text;
		}
	}
}
&lt;/pre&gt;
&lt;p&gt;net.l4cd.display.BitmapText源码&lt;/p&gt;
&lt;pre class=&quot;brush: as3;&quot;&gt;
package net.l4cd.display
{
	import flash.display.BitmapData;
	import flash.display.Sprite;
	import flash.geom.Matrix;
	import flash.geom.Point;
	import flash.geom.Rectangle;

	/**
	 * @author l4cd.net
	 * @website http://l4cd.net
	 */
	public class BitmapText extends Sprite
	{
		private var _map:Array;
		private var _chars:String = &quot;0123456789+-.&quot;;
		private var _bitmapData:BitmapData;
		private var _height:Number;
		private var _width:Number;
		private var _blank:Boolean;

		/**
		 * @param bitmapData	位图的bitmapData对象
		 * @param width			单个字符的宽
		 * @param height		单个字符的高
		 * @param gap			输出的文字间隔
		 * @param blank			是否忽略空白
		 * @param chars			位图的字符集
		 *
		 */
		public function BitmapText(bitmapData:BitmapData,width:Number,height:Number,
				gap:Number,blank:Boolean=false,chars:String=&quot;0123456789+-.&quot;)
		{
			super();
			_bitmapData = bitmapData.clone();
			_width = width;
			_height = height;
			_blank = blank;
			_gap = gap;
			_map = [];
			if(chars)_chars = chars;
			for(var i:uint=0;i&lt;_chars.length;i++)
			{
				var bit:BitmapData = new BitmapData(width,height,true,0);
				bit.copyPixels(_bitmapData,new Rectangle(i*width,0,width,height),new Point(0,0));
				var rect:Rectangle = bit.getColorBoundsRect(0xFF000000,0x00000000,false);
				rect.x = rect.x + i*width;
				_map[_chars.charAt(i)] = rect;
				bit.dispose();
			}
		}
		private var _text:String;
		public function get text():String
		{
			return _text;
		}
		public function set text(value:String):void
		{
			_text = value;
			_draw();
		}

		private function _draw():void
		{
			graphics.clear();
			var x:Number = 0;
			for(var i:uint=0;i&lt;text.length;i++)
			{
				var char:String = text.charAt(i);
				var index:int = _chars.indexOf(char);
				var rect:Rectangle = _map[char];
				if(!_blank)x+=rect.x%_width;
				x += _gap;
				graphics.beginBitmapFill(_bitmapData,new Matrix(1,0,0,1,x-rect.x,0),false);
				graphics.drawRect(x,rect.y,rect.width,rect.height);
				x+=rect.width;
				if(!_blank)x = (i+1)*_width;
			}
			graphics.endFill();
		}

		public function destroy():void
		{
			graphics.clear();
			_map = [];
			_bitmapData.dispose();
			_bitmapData = null;
		}
	}
}
&lt;/pre&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/408799427/l4cd/feedsky/s.gif?r=http://item.feedsky.com/~feedsky/l4cd/~8303221/408799427/5931248/1/item.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/l4cd/408799427/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/l4cd/408799427/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</content:encoded><wfw:commentRss>http://l4cd.net/blog/post-bitmaptext-art-word-processing.html/feed</wfw:commentRss><slash:comments>2</slash:comments><description>游戏开发中..常常需要显示特殊的美术字体.. 像经验数字~扣血扣蓝~倒计时等~ 像一般的基于字体的美术字~只需要嵌入字体即可~ 但像下面这类纯手工的美术字~ 处理起来就没有这么方便.. 常见的方案一般为截取相应位置的bitmap数据.. 然后重新拼成需要的内容..再显示之~ 效果如下(可在下方的输出框内输出数字试试)： // flash(null,&quot;https://dl-web.dropbox.com/u/1184383/blog/post/2010/post-bitmaptext-art-word-processing/BitmapTextExample.swf&quot;,550,200,&quot;9.0.115&quot;,true); // ]]&amp;#62; 第一行的数字是不忽略透明空白,第二行则是忽略透明空白,对比一下应该就能明白了 下面是源码..代码很简单..我就不多说了.. package { import flash.display.Bitmap; import flash.display.Sprite; import flash.events.Event; import flash.text.TextField; import flash.text.TextFormat; import net.l4cd.display.BitmapText; [SWF(backgroundColor=&quot;#FFFFFF&quot;,width=&quot;550&quot;,height=&quot;200&quot;)] /** * BitmapTextExample * @author l4cd * @website http://l4cd.net */ public &amp;#8230; &lt;a href=&quot;http://l4cd.net/blog/post-bitmaptext-art-word-processing.html&quot;&gt;Continue reading &lt;span class=&quot;meta-nav&quot;&gt;&amp;#8594;&lt;/span&gt;&lt;/a&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/408799427/l4cd/feedsky/s.gif?r=http://item.feedsky.com/~feedsky/l4cd/~8303221/408799427/5931248/1/item.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/l4cd/408799427/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/l4cd/408799427/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category>art</category><category>ACTIONSCRIPT</category><category>word</category><category>bitmap</category><category>text</category><pubDate>Sat, 17 Jul 2010 23:37:24 +0800</pubDate><author>L4CD.NET</author><comments>http://l4cd.net/blog/post-bitmaptext-art-word-processing.html#comments</comments><guid isPermaLink="false">http://blog.l4cd.net/?p=1407</guid><dc:creator>L4CD.NET</dc:creator><fs:srclink>http://l4cd.net/blog/post-bitmaptext-art-word-processing.html</fs:srclink><fs:srcfeed>http://l4cd.net/feed</fs:srcfeed><fs:itemid>feedsky/l4cd/~8303221/408799427/5931248</fs:itemid></item><item><title>使用Google Map API(FLASH)在地图中显示你的位置</title><link>http://item.feedsky.com/~feedsky/l4cd/~8303221/408799428/5931248/1/item.html</link><content:encoded>&lt;p&gt;今天网上乱逛的时候..&lt;br /&gt;
在一个测试站点速度(&lt;a href=&quot;http://www.speedtest.cn/&quot;&gt;http://www.speedtest.cn/&lt;/a&gt;)的网站下面~&lt;br /&gt;
用Google地图显示了访问者所在的位置...&lt;br /&gt;
觉得挺有意思的..&lt;/p&gt;
&lt;p&gt;看了一下google map的flash api..&lt;br /&gt;
实现起来非常方便..感叹一下google map的强大..&lt;br /&gt;
效果如下..&lt;br /&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
flash('map','http://labs.l4cd.net/google/GoogleMap.swf',600,450,&quot;9.0.115&quot;,true);
&lt;/script&gt;&lt;/p&gt;
&lt;p&gt;流程大概这样&lt;br /&gt;
1.先获取访客IP,然后通过IP获取用户地理位置信息..(这一步我直接调用了&lt;a href=&quot;http://www.webxml.com.cn/&quot;&gt;http://www.webxml.com.cn/&lt;/a&gt;提供的接口)&lt;br /&gt;
2.调用ClientGeocoder.geocode获取该地理位置于google map上的集合..&lt;br /&gt;
3.获取第一个位置..用Map.setCenter定位地图..&lt;br /&gt;
4.用Map.addOverlay标注位置..&lt;br /&gt;
5.用Map.openInfoWindow弹出Tip提示..&lt;br /&gt;
&lt;span id=&quot;more-1389&quot;&gt;&lt;/span&gt;&lt;br /&gt;
code~~&lt;/p&gt;
&lt;pre class=&quot;brush: as3;&quot;&gt;
&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
&lt;mx:Application xmlns:mx=&quot;http://www.adobe.com/2006/mxml&quot; layout=&quot;absolute&quot; fontFamily=&quot;Verdana&quot; fontSize=&quot;12&quot;&gt;
	&lt;mx:Script&gt;
		&lt;![CDATA[
			import com.google.maps.InfoWindowOptions;
			import com.google.maps.Map;
			import com.google.maps.MapType;
			import com.google.maps.overlays.Marker;
			import com.google.maps.services.ClientGeocoder;
			import com.google.maps.services.GeocodingEvent;

			import mx.controls.Alert;
			import mx.rpc.events.FaultEvent;
			import mx.rpc.events.ResultEvent;

			private var geocoder:ClientGeocoder;
			//by l4cd.net
			private function onMapReady(event:Event):void
			{
				map.enableContinuousZoom();
				map.enableScrollWheelZoom();
				geocoder = new ClientGeocoder();
				geocoder.addEventListener(GeocodingEvent.GEOCODING_SUCCESS,
					function(event:GeocodingEvent):void {
						var placemarks:Array = event.response.placemarks;
						if (placemarks.length &gt; 0) {
							map.setCenter(placemarks[0].point, 5, MapType.NORMAL_MAP_TYPE);
							var marker:Marker = new Marker(placemarks[0].point);
							map.addOverlay(marker);
							map.openInfoWindow(placemarks[0].point, new InfoWindowOptions({title:&quot;欢迎访问 L4cd.Net 简单工作&quot;,content: &quot;来自&lt;&quot;+here+&quot;&gt;的访客&quot;}));
						}
					});
				geocoder.addEventListener(GeocodingEvent.GEOCODING_FAILURE,
					function(event:GeocodingEvent):void {
						trace(&quot;Geocoding failed&quot;);
						Alert.show(&quot;获取地理位置失败&quot;,&quot;L4cd.Net 简单工作&quot;);
					});

				ip.getGeoIPContext();
			}
			private var here:String;
			protected function ip_resultHandler(event:ResultEvent):void
			{
				here = event.result[1];
				geocoder.geocode(here);
			}

			protected function ip_faultHandler(event:FaultEvent):void
			{
				Alert.show(&quot;获取地理位置失败&quot;,&quot;L4cd.Net 简单工作&quot;);
			}

		]]&amp;gt;
	&lt;/mx:Script&gt;
	&lt;mx:WebService result=&quot;ip_resultHandler(event)&quot; fault=&quot;ip_faultHandler(event)&quot; wsdl=&quot;http://webservice.webxml.com.cn/WebServices/IpAddressSearchWebService.asmx?wsdl&quot; id=&quot;ip&quot;&gt;
	&lt;/mx:WebService&gt;
&lt;maps:Map xmlns:maps=&quot;com.google.maps.*&quot; language=&quot;zh-CN&quot; id=&quot;map&quot; mapevent_mapready=&quot;onMapReady(event)&quot;
			  width=&quot;100%&quot; height=&quot;100%&quot; key=&quot;{api_key}&quot;/&gt;
&lt;/mx:Application&gt;
&lt;/pre&gt;
&lt;p&gt;其中api_key需要你自己到&lt;a href=&quot;http://code.google.com/intl/zh-CN/apis/maps/signup.html&quot;&gt;http://code.google.com/intl/zh-CN/apis/maps/signup.html&lt;/a&gt;申请一个开发用的key..&lt;br /&gt;
只要用google账号登陆..填写你需要使用地图服务的域名即可&lt;br /&gt;
当然你可以破解我的flash获取我现在用的key..不过每个key是有域名限制..so..你拿了也没用..&lt;/p&gt;
&lt;p&gt;另外此地址为获取访客ip与地理位置的webservice..&lt;br /&gt;
&lt;a href=&quot;http://webservice.webxml.com.cn/WebServices/IpAddressSearchWebService.asmx?wsdl&quot;&gt;http://webservice.webxml.com.cn/WebServices/IpAddressSearchWebService.asmx?wsdl&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;PS~其实把上面的flash稍稍改改..&lt;br /&gt;
即可改成显示当前在线用户在地图上的分布..各位兴趣可以尝试一下..&lt;/p&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/408799428/l4cd/feedsky/s.gif?r=http://item.feedsky.com/~feedsky/l4cd/~8303221/408799428/5931248/1/item.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/l4cd/408799428/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/l4cd/408799428/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</content:encoded><wfw:commentRss>http://l4cd.net/blog/post-show-your-location-in-the-google-map-by-flash.html/feed</wfw:commentRss><slash:comments>7</slash:comments><description>今天网上乱逛的时候.. 在一个测试站点速度(http://www.speedtest.cn/)的网站下面~ 用Google地图显示了访问者所在的位置... 觉得挺有意思的.. 看了一下google map的flash api.. 实现起来非常方便..感叹一下google map的强大.. 效果如下.. flash('map','http://labs.l4cd.net/google/GoogleMap.swf',600,450,&quot;9.0.115&quot;,true); 流程大概这样 1.先获取访客IP,然后通过IP获取用户地理位置信息..(这一步我直接调用了http://www.webxml.com.cn/提供的接口) 2.调用ClientGeocoder.geocode获取该地理位置于google map上的集合.. 3.获取第一个位置..用Map.setCenter定位地图.. 4.用Map.addOverlay标注位置.. 5.用Map.openInfoWindow弹出Tip提示.. code~~ 0) { map.setCenter(placemarks[0].point, 5, MapType.NORMAL_MAP_TYPE); var marker:Marker = new Marker(placemarks[0].point); map.addOverlay(marker); map.openInfoWindow(placemarks[0].point, new InfoWindowOptions({title:&quot;欢迎访问 L4cd.Net 简单工作&quot;,content: &quot;来自的访客&quot;})); } }); geocoder.addEventListener(GeocodingEvent.GEOCODING_FAILURE, function(event:GeocodingEvent):void &amp;#8230; &lt;a href=&quot;http://l4cd.net/blog/post-show-your-location-in-the-google-map-by-flash.html&quot;&gt;Continue reading &lt;span class=&quot;meta-nav&quot;&gt;&amp;#8594;&lt;/span&gt;&lt;/a&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/408799428/l4cd/feedsky/s.gif?r=http://item.feedsky.com/~feedsky/l4cd/~8303221/408799428/5931248/1/item.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/l4cd/408799428/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/l4cd/408799428/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category>FLASH</category><category>FLEX</category><category>Google</category><category>location</category><category>map</category><category>api</category><pubDate>Wed, 02 Jun 2010 00:35:49 +0800</pubDate><author>L4CD.NET</author><comments>http://l4cd.net/blog/post-show-your-location-in-the-google-map-by-flash.html#comments</comments><guid isPermaLink="false">http://blog.l4cd.net/?p=1389</guid><dc:creator>L4CD.NET</dc:creator><fs:srclink>http://l4cd.net/blog/post-show-your-location-in-the-google-map-by-flash.html</fs:srclink><fs:srcfeed>http://l4cd.net/feed</fs:srcfeed><fs:itemid>feedsky/l4cd/~8303221/408799428/5931248</fs:itemid></item><item><title>转换亮度/对比度/饱和度/色相到ColorMatrixFilter</title><link>http://item.feedsky.com/~feedsky/l4cd/~8303221/408799429/5931248/1/item.html</link><content:encoded>&lt;p&gt;在FLASH IDE里设置ColorMatrixFilter时ide会提供亮度/对比度/饱和度/色相让我们调节..&lt;br /&gt;
不过在纯代码中使用ColorMatrixFilter确实不是很方便..&lt;br /&gt;
所以之前每次都需要打开FLASH CS×调完效果后再输出matrix~&lt;/p&gt;
&lt;p&gt;今天终于受不了FLASH IDE的打开速度~~&lt;br /&gt;
借用fl.motion包下的AdjustColor写了一个简单的工具~&lt;br /&gt;
操作方法:&lt;br /&gt;
1.单击输入框输入相应的值(除了色相为-180~180外,其它均为-100~100);&lt;br /&gt;
2.&lt;font color='#FF6600'&gt;按住输入框左右移动鼠标&lt;/font&gt;调整值..这个跟CS4/5操作一样..&lt;br /&gt;
3.选中&quot;Orz&quot;..将在自动将Matrix数组的各个值自动保留一位小数...(只是为了美观)..&lt;br /&gt;
4.点击&quot;更换&quot;更新预览图~需要fp10支持~&lt;br /&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
flash(&quot;ColorMatrixFilterCreater&quot;,&quot;https://dl-web.dropbox.com/u/1184383/blog/post/2010/post-brightness-contrast-hue-saturation-2-colormatrixfilter/ColorMatrixFilterCreater.swf&quot;,450,350,&quot;9.0.115&quot;,true);
&lt;/script&gt;&lt;br /&gt;
&lt;del datetime=&quot;2010-05-27T14:06:32+00:00&quot;&gt;注:输出少了一个[]号~应该是&lt;br /&gt;
new ColorMatrixFilter(&lt;font color='#0000FF'&gt;[&lt;/font&gt;1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0&lt;font color='#0000FF'&gt;]&lt;/font&gt;);&lt;br /&gt;
今晚回去再改~20100527~&lt;/del&gt;已修正~&lt;br /&gt;
&lt;span id=&quot;more-1377&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;转换的代码都是现成的..几句即可~&lt;/p&gt;
&lt;pre class=&quot;brush: as3;&quot;&gt;
var aj:AdjustColor = new AdjustColor();
aj.brightness = int(brightness.text);
aj.contrast = int(contrast.text);
aj.hue = int(hue.text);
aj.saturation = int(saturation.text);
_loader.filters = [new ColorMatrixFilter(aj.CalculateFinalFlatArray())];
&lt;/pre&gt;
&lt;p&gt;其中AdjustColor类请到&lt;br /&gt;
&lt;FLASH IDE&gt;\Common\Configuration\ActionScript 3.0\projects\Flash\src\fl\motion&lt;br /&gt;
下获得~~&lt;/p&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/408799429/l4cd/feedsky/s.gif?r=http://item.feedsky.com/~feedsky/l4cd/~8303221/408799429/5931248/1/item.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/l4cd/408799429/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/l4cd/408799429/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</content:encoded><wfw:commentRss>http://l4cd.net/blog/post-brightness-contrast-hue-saturation-2-colormatrixfilter.html/feed</wfw:commentRss><slash:comments>4</slash:comments><description>在FLASH IDE里设置ColorMatrixFilter时ide会提供亮度/对比度/饱和度/色相让我们调节.. 不过在纯代码中使用ColorMatrixFilter确实不是很方便.. 所以之前每次都需要打开FLASH CS×调完效果后再输出matrix~ 今天终于受不了FLASH IDE的打开速度~~ 借用fl.motion包下的AdjustColor写了一个简单的工具~ 操作方法: 1.单击输入框输入相应的值(除了色相为-180~180外,其它均为-100~100); 2.按住输入框左右移动鼠标调整值..这个跟CS4/5操作一样.. 3.选中&quot;Orz&quot;..将在自动将Matrix数组的各个值自动保留一位小数...(只是为了美观).. 4.点击&quot;更换&quot;更新预览图~需要fp10支持~ flash(&quot;ColorMatrixFilterCreater&quot;,&quot;https://dl-web.dropbox.com/u/1184383/blog/post/2010/post-brightness-contrast-hue-saturation-2-colormatrixfilter/ColorMatrixFilterCreater.swf&quot;,450,350,&quot;9.0.115&quot;,true); 注:输出少了一个[]号~应该是 new ColorMatrixFilter([1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0]); 今晚回去再改~20100527~已修正~ 转换的代码都是现成的..几句即可~ var aj:AdjustColor = new AdjustColor(); aj.brightness = int(brightness.text); aj.contrast = int(contrast.text); aj.hue = int(hue.text); aj.saturation = int(saturation.text); _loader.filters = [new ColorMatrixFilter(aj.CalculateFinalFlatArray())]; &amp;#8230; &lt;a href=&quot;http://l4cd.net/blog/post-brightness-contrast-hue-saturation-2-colormatrixfilter.html&quot;&gt;Continue reading &lt;span class=&quot;meta-nav&quot;&gt;&amp;#8594;&lt;/span&gt;&lt;/a&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/408799429/l4cd/feedsky/s.gif?r=http://item.feedsky.com/~feedsky/l4cd/~8303221/408799429/5931248/1/item.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/l4cd/408799429/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/l4cd/408799429/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category>colormatrixfilter</category><category>contrast</category><category>FLASH</category><category>hue</category><category>brightness</category><category>saturation</category><category>AdjustColor</category><pubDate>Thu, 27 May 2010 00:49:00 +0800</pubDate><author>L4CD.NET</author><comments>http://l4cd.net/blog/post-brightness-contrast-hue-saturation-2-colormatrixfilter.html#comments</comments><guid isPermaLink="false">http://blog.l4cd.net/?p=1377</guid><dc:creator>L4CD.NET</dc:creator><fs:srclink>http://l4cd.net/blog/post-brightness-contrast-hue-saturation-2-colormatrixfilter.html</fs:srclink><fs:srcfeed>http://l4cd.net/feed</fs:srcfeed><fs:itemid>feedsky/l4cd/~8303221/408799429/5931248</fs:itemid></item><item><title>FLASHCS5中应用RSL共享库~</title><link>http://item.feedsky.com/~feedsky/l4cd/~8303221/408799430/5931248/1/item.html</link><content:encoded>&lt;p&gt;用过flex的童鞋应该都用过或了解过rsl...&lt;br /&gt;
它可以在我们电脑硬盘里缓存经验证的swz共享库文件...&lt;br /&gt;
当你的项目使用到相应的库时..就不需要重新下载..&lt;br /&gt;
并且不怕受浏览器清除缓存影响..因为fp会将它们存在硬盘上..&lt;/p&gt;
&lt;p&gt;现在我们在cs5中也可以应用rsl技术...&lt;br /&gt;
cs5中新增了&lt;a href=&quot;http://help.adobe.com/zh_CN/Flash/CS5/AS3LR/fl/rsl/package-detail.html&quot;&gt;fl.rsl&lt;/a&gt;包..&lt;/p&gt;
&lt;p&gt;我们可以使用它进行swf库(未经验证~)或swz库(经验证)的加载...&lt;/p&gt;
&lt;p&gt;下面的例子中..我们尝试加载flex 3.5 sdk中的framework_3.5.0.12683.swz..&lt;br /&gt;
并调用mx.formatters::DateFormatter进行对日期的格式化操作..&lt;br /&gt;
当打开flash后你可能会看到加载进度..&lt;br /&gt;
&lt;span id=&quot;more-1358&quot;&gt;&lt;/span&gt;&lt;br /&gt;
或者什么都看不到就已经提示加载成功(因为你可能曾经加载过framework_3.5.0.12683.swz,而且fp已经帮你缓存于硬盘当中...)&lt;br /&gt;
&lt;del datetime=&quot;2010-05-22T17:45:25+00:00&quot;&gt;注:正常浏览需要fp10.1~只因fl.rsl包需要fp10.1支持(在flash上点击右键可查看你的fp版本)&lt;/del&gt;&lt;br /&gt;
刚刚重装了fp9..依然可以正常访问..验证中..&lt;br /&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
flash(null,&quot;https://dl-web.dropbox.com/u/1184383/blog/post/2010/post-use-rsl-in-flash-cs5/use-rsl-in-flash-cs5.swf&quot;,320,260);
&lt;/script&gt;&lt;/p&gt;
&lt;p&gt;这里有几点需要说明一下...&lt;br /&gt;
1.当你只加载swf的库时,直接使用RSLInfo即可..代码如下&lt;/p&gt;
&lt;pre class=&quot;brush: as3;&quot;&gt;
var rsl:RSLPreloader = new RSLPreloader(this);//这里的this为文档类,不传留空亦可~
var info:RSLInfo = new RSLInfo();
info.addEntry(&quot;framework_3.5.0.12683.swf&quot;);//这里的第二个参数可设置一个跨域文件路径~下方的加载SWZ的代码同理
rsl.addRSLInfo(info);
rsl.start();
&lt;/pre&gt;
&lt;p&gt;2.当你需要加载SWZ的库时..需要使用SWZInfo.并且需要注意的时..SWZInfo的构造函数中..需在提供你请求加载的SWZ的&quot;摘要(digest)&quot;&lt;br /&gt;
该digest将验证你下载的SWZ文件是否正确~~&lt;br /&gt;
而digest是一个 SHA-256 哈希字符串值..&lt;br /&gt;
如果你使用flex的话可以直接使用SHA256.computeDigest(bytes)获取...&lt;br /&gt;
另外提醒一下..&lt;br /&gt;
这里的bytes并不是&lt;strong&gt;framework_3.5.0.12683.swz&lt;/strong&gt;的bytes~而是&lt;strong&gt;framework_3.5.0.12683.swf&lt;/strong&gt;的bytes~&lt;br /&gt;
这里很重要喔~~(ps:试了很久才试出来~汗一个~帮助没写清楚)..&lt;br /&gt;
那么详细代码如下:&lt;/p&gt;
&lt;pre class=&quot;brush: as3;&quot;&gt;
var rsl:RSLPreloader = new RSLPreloader(this);
//3c82b2a2455b252b8595fd0113249aa19d7e8bdd516b2f6ea43244aa6d543d58为framework_3.5.0.12683.swf的SHA-256值~
var info:SWZInfo = new SWZInfo(&quot;3c82b2a2455b252b8595fd0113249aa19d7e8bdd516b2f6ea43244aa6d543d58&quot;);
info.addEntry(&quot;framework_3.5.0.12683.swz&quot;);
rsl.addRSLInfo(info);
rsl.start();
&lt;/pre&gt;
&lt;p&gt;3.当我们加载SWZ时...fp会优先用摘要(digest)从你的电脑硬盘里查找有没有相应的swz文件..&lt;br /&gt;
如果你确保swz文件存在...你甚至可以这么写..&lt;/p&gt;
&lt;pre class=&quot;brush: as3;&quot;&gt;
var rsl:RSLPreloader = new RSLPreloader(this);
var info:SWZInfo = new SWZInfo(&quot;3c82b2a2455b252b8595fd0113249aa19d7e8bdd516b2f6ea43244aa6d543d58&quot;);
info.addEntry(&quot;&quot;);
rsl.addRSLInfo(info);
rsl.start();
&lt;/pre&gt;
&lt;p&gt;FP将一样返回加载成功...&lt;/p&gt;
&lt;p&gt;下面是上边的flash的完整代码...&lt;br /&gt;
直接往CS5里贴即可...&lt;/p&gt;
&lt;pre class=&quot;brush: as3;&quot;&gt;
import fl.rsl.*;
import fl.rsl.RSLPreloader;
import fl.events.*;
import flash.utils.getDefinitionByName;
import flash.text.TextField;
import flash.display.SimpleButton;
import flash.events.MouseEvent;
//code by l4cd.net

var button:SimpleButton;
button.enabled = false;
button.alpha = 0.5;
button.addEventListener(MouseEvent.CLICK,_test);
function _test(e:MouseEvent):void
{
	if(!button.enabled)return;
	var DateFormatter:Class = getDefinitionByName(&quot;mx.formatters::DateFormatter&quot;) as Class;
	var format:Object = new DateFormatter();
	format.formatString = &quot;YYYY年MM月DD日 HH/NN/SS&quot;;

	var txt:String = 'Class: mx.formatters::DateFormatter';
	txt += '\nFormatString: YYYY年MM月DD日 HH/NN/SS';
	txt += &quot;\nOutput: &quot;+format.format(new Date());
	txt += &quot;\nby: l4cd.net&quot;;
	output.text = txt;
}

var output:TextField;
output.background = true;
output.backgroundColor = 0xeeeeee;

var rsl:RSLPreloader = new RSLPreloader(this);
var info:SWZInfo = new SWZInfo(&quot;3c82b2a2455b252b8595fd0113249aa19d7e8bdd516b2f6ea43244aa6d543d58&quot;);
//这里的地址改成相应的地址~~
info.addEntry(&quot;http://www.l4cd.net/rsl/framework_3.5.0.12683.swz&quot;,&quot;http://www.l4cd.net/crossdomain.xml&quot;);
rsl.addRSLInfo(info);
rsl.addEventListener(RSLEvent.RSL_LOAD_COMPLETE,_rslComplete);
rsl.addEventListener(RSLEvent.RSL_PROGRESS,_rslProgress);
rsl.addEventListener(RSLErrorEvent.RSL_LOAD_FAILED,_rslFailed);
rsl.start();
function _rslProgress(e:RSLEvent):void
{
	var txt:String = &quot;Framework_3.5.0.12683.swz loading...&quot;;
	txt += '\n	.rslsLoaded = ' + e.rslsLoaded;
	txt += '\n	.rslsFailed = ' + e.rslsFailed;
	txt += '\n	.rslsTotal = ' + e.rslsTotal;
	txt += '\n	.bytesLoaded = ' + e.bytesLoaded;
	txt += '\n	.bytesTotal = ' + e.bytesTotal;
	output.text = txt;
}
function _rslComplete(e:RSLEvent):void
{
	button.enabled = true;
	button.alpha = 1;
	output.text = &quot;framework_3.5.0.12683.swz loaded!\n点下面的按钮进行测试!&quot;;
}
function _rslFailed(e:RSLErrorEvent):void
{
	output.text = &quot;Framework_3.5.0.12683.swz\n&quot;+e;
}
&lt;/pre&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/408799430/l4cd/feedsky/s.gif?r=http://item.feedsky.com/~feedsky/l4cd/~8303221/408799430/5931248/1/item.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/l4cd/408799430/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/l4cd/408799430/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</content:encoded><wfw:commentRss>http://l4cd.net/blog/post-use-rsl-in-flash-cs5.html/feed</wfw:commentRss><slash:comments>1</slash:comments><description>用过flex的童鞋应该都用过或了解过rsl... 它可以在我们电脑硬盘里缓存经验证的swz共享库文件... 当你的项目使用到相应的库时..就不需要重新下载.. 并且不怕受浏览器清除缓存影响..因为fp会将它们存在硬盘上.. 现在我们在cs5中也可以应用rsl技术... cs5中新增了fl.rsl包.. 我们可以使用它进行swf库(未经验证~)或swz库(经验证)的加载... 下面的例子中..我们尝试加载flex 3.5 sdk中的framework_3.5.0.12683.swz.. 并调用mx.formatters::DateFormatter进行对日期的格式化操作.. 当打开flash后你可能会看到加载进度.. 或者什么都看不到就已经提示加载成功(因为你可能曾经加载过framework_3.5.0.12683.swz,而且fp已经帮你缓存于硬盘当中...) 注:正常浏览需要fp10.1~只因fl.rsl包需要fp10.1支持(在flash上点击右键可查看你的fp版本) 刚刚重装了fp9..依然可以正常访问..验证中.. flash(null,&quot;https://dl-web.dropbox.com/u/1184383/blog/post/2010/post-use-rsl-in-flash-cs5/use-rsl-in-flash-cs5.swf&quot;,320,260); 这里有几点需要说明一下... 1.当你只加载swf的库时,直接使用RSLInfo即可..代码如下 var rsl:RSLPreloader = new RSLPreloader(this);//这里的this为文档类,不传留空亦可~ var info:RSLInfo = new RSLInfo(); info.addEntry(&quot;framework_3.5.0.12683.swf&quot;);//这里的第二个参数可设置一个跨域文件路径~下方的加载SWZ的代码同理 rsl.addRSLInfo(info); rsl.start(); 2.当你需要加载SWZ的库时..需要使用SWZInfo.并且需要注意的时..SWZInfo的构造函数中..需在提供你请求加载的SWZ的&quot;摘要(digest)&quot; 该digest将验证你下载的SWZ文件是否正确~~ 而digest是一个 SHA-256 哈希字符串值.. 如果你使用flex的话可以直接使用SHA256.computeDigest(bytes)获取... 另外提醒一下.. 这里的bytes并不是framework_3.5.0.12683.swz的bytes~而是framework_3.5.0.12683.swf的bytes~ 这里很重要喔~~(ps:试了很久才试出来~汗一个~帮助没写清楚).. &amp;#8230; &lt;a href=&quot;http://l4cd.net/blog/post-use-rsl-in-flash-cs5.html&quot;&gt;Continue reading &lt;span class=&quot;meta-nav&quot;&gt;&amp;#8594;&lt;/span&gt;&lt;/a&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/408799430/l4cd/feedsky/s.gif?r=http://item.feedsky.com/~feedsky/l4cd/~8303221/408799430/5931248/1/item.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/l4cd/408799430/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/l4cd/408799430/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category>FLASH</category><category>RSL</category><category>ACTIONSCRIPT</category><category>cs5</category><category>swz</category><pubDate>Sun, 23 May 2010 01:13:25 +0800</pubDate><author>L4CD.NET</author><comments>http://l4cd.net/blog/post-use-rsl-in-flash-cs5.html#comments</comments><guid isPermaLink="false">http://blog.l4cd.net/?p=1358</guid><dc:creator>L4CD.NET</dc:creator><fs:srclink>http://l4cd.net/blog/post-use-rsl-in-flash-cs5.html</fs:srclink><fs:srcfeed>http://l4cd.net/feed</fs:srcfeed><fs:itemid>feedsky/l4cd/~8303221/408799430/5931248</fs:itemid></item><item><title>TIMER中delay设置过大的问题..</title><link>http://item.feedsky.com/~feedsky/l4cd/~8303221/408799431/5931248/1/item.html</link><content:encoded>&lt;p&gt;今天同事遇到一个问题...&lt;br /&gt;
在swf中使用timer做倒计时..&lt;br /&gt;
然后给timer设置了一个很大的值后..&lt;br /&gt;
调用timer.start()后.会立刻发出TimerEvent.TIMER_COMPLETE事件...&lt;/p&gt;
&lt;p&gt;于是测试了一下..确实有这个问题...&lt;br /&gt;
测试代码如下:&lt;/p&gt;
&lt;pre class=&quot;brush: as3;&quot;&gt;
btn1.addEventListener(MouseEvent.CLICK,_btnClick);
btn2.addEventListener(MouseEvent.CLICK,_btnClick);
function _btnClick(e:MouseEvent):void
{
	var timer:Timer = new Timer(e.target==btn1?(int.MAX_VALUE*int.MAX_VALUE):2000,1);
	timer.addEventListener(TimerEvent.TIMER_COMPLETE,_complete);
	output.text = &quot;button click...&quot;;
	output.appendText(&quot;\ntimer.delay &gt; &quot;+timer.delay);
	timer.start();
}

output.background = true;
output.backgroundColor=0xEEEEEE;

function _complete(e:TimerEvent):void
{
	e.target.addEventListener(TimerEvent.TIMER_COMPLETE,_complete);
	output.appendText(&quot;\n&quot;+e.toString());
}
&lt;/pre&gt;
&lt;p&gt;下面是FLASH&lt;br /&gt;
&lt;span id=&quot;more-1340&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
flash(null,&quot;https://dl-web.dropbox.com/u/2009832/blog/post/2010/post-timer-delay-max-value/timer.swf&quot;,340,180);
&lt;/script&gt;&lt;/p&gt;
&lt;p&gt;点左边的按钮时..会立刻抛出complete&lt;br /&gt;
点右边的按钮是..就正常等待2秒钟..&lt;/p&gt;
&lt;p&gt;查了一下api..好像没发现有提到timer的delay有限制..&lt;br /&gt;
自己试了一下~~临界点大概在int.MAX_VALUE附近..&lt;br /&gt;
&lt;b&gt;刚发现不同的电脑的临界点不一样..所以改成了int.MAX_VALUE*int.MAX_VALUE..基本上全挂掉&lt;/b&gt;&lt;br /&gt;
而且不是固定值..有时候一个不会出错的值 ~~再试一下又出错了~&lt;br /&gt;
不知道是fp的问题还是说是window的问题&lt;br /&gt;
无解中...&lt;/p&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/408799431/l4cd/feedsky/s.gif?r=http://item.feedsky.com/~feedsky/l4cd/~8303221/408799431/5931248/1/item.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/l4cd/408799431/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/l4cd/408799431/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</content:encoded><wfw:commentRss>http://l4cd.net/blog/post-timer-delay-max-value.html/feed</wfw:commentRss><slash:comments>5</slash:comments><description>今天同事遇到一个问题... 在swf中使用timer做倒计时.. 然后给timer设置了一个很大的值后.. 调用timer.start()后.会立刻发出TimerEvent.TIMER_COMPLETE事件... 于是测试了一下..确实有这个问题... 测试代码如下: btn1.addEventListener(MouseEvent.CLICK,_btnClick); btn2.addEventListener(MouseEvent.CLICK,_btnClick); function _btnClick(e:MouseEvent):void { var timer:Timer = new Timer(e.target==btn1?(int.MAX_VALUE*int.MAX_VALUE):2000,1); timer.addEventListener(TimerEvent.TIMER_COMPLETE,_complete); output.text = &quot;button click...&quot;; output.appendText(&quot;\ntimer.delay &gt; &quot;+timer.delay); timer.start(); } output.background = true; output.backgroundColor=0xEEEEEE; function _complete(e:TimerEvent):void { e.target.addEventListener(TimerEvent.TIMER_COMPLETE,_complete); output.appendText(&quot;\n&quot;+e.toString()); } 下面是FLASH flash(null,&quot;https://dl-web.dropbox.com/u/2009832/blog/post/2010/post-timer-delay-max-value/timer.swf&quot;,340,180); 点左边的按钮时..会立刻抛出complete 点右边的按钮是..就正常等待2秒钟.. &amp;#8230; &lt;a href=&quot;http://l4cd.net/blog/post-timer-delay-max-value.html&quot;&gt;Continue reading &lt;span class=&quot;meta-nav&quot;&gt;&amp;#8594;&lt;/span&gt;&lt;/a&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/408799431/l4cd/feedsky/s.gif?r=http://item.feedsky.com/~feedsky/l4cd/~8303221/408799431/5931248/1/item.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/l4cd/408799431/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/l4cd/408799431/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category>timer</category><category>ACTIONSCRIPT</category><category>delay</category><pubDate>Fri, 07 May 2010 16:05:34 +0800</pubDate><author>L4CD.NET</author><comments>http://l4cd.net/blog/post-timer-delay-max-value.html#comments</comments><guid isPermaLink="false">http://blog.l4cd.net/?p=1340</guid><dc:creator>L4CD.NET</dc:creator><fs:srclink>http://l4cd.net/blog/post-timer-delay-max-value.html</fs:srclink><fs:srcfeed>http://l4cd.net/feed</fs:srcfeed><fs:itemid>feedsky/l4cd/~8303221/408799431/5931248</fs:itemid></item><item><title>gotoAndStop的BUG~</title><link>http://item.feedsky.com/~feedsky/l4cd/~8303221/408799432/5931248/1/item.html</link><content:encoded>&lt;p&gt;再提一个gotoAndStop的BUG..&lt;br /&gt;
也是最近项目中遇到的问题...&lt;/p&gt;
&lt;p&gt;先看下结构图&lt;br /&gt;
&lt;img src=&quot;https://dl-web.dropbox.com/u/1184383/blog/post/2010/post-gotoandstop-bug/gotoAndStop.png&quot; alt=&quot;结构图&quot; /&gt;&lt;/p&gt;
&lt;p&gt;在movieClip层中..分别创建了十个MC..放在了十个帧当中..&lt;br /&gt;
每个mc的里有以下的代码&lt;/p&gt;
&lt;pre class=&quot;brush: as3;&quot;&gt;
trace(&quot;我是放在第n帧上的MC&quot;);//其中n为自身所在舞台的帧号..
(root as MovieClip).output(&quot;我是放在第n帧上的MC&quot;);//此处只是为了显示在界面上所以加了代码..可以忽略..
&lt;/pre&gt;
&lt;p&gt;&lt;span id=&quot;more-1316&quot;&gt;&lt;/span&gt;&lt;br /&gt;
然后code层的第一帧加上了跳转代码&lt;/p&gt;
&lt;pre class=&quot;brush: as3;&quot;&gt;
txt.text = &quot;准备执行gotoAndStop(10)\n\n&quot;;
gotoAndStop(10);
&lt;/pre&gt;
&lt;p&gt;然后运行..你会发现outpu窗口会输出以下内容:&lt;/p&gt;
&lt;pre class=&quot;brush: as3;&quot;&gt;
//准备执行gotoAndStop(10)
//
//我是放在第1帧上的MC
//我是放在第2帧上的MC
//我是放在第3帧上的MC
//我是放在第4帧上的MC
//我是放在第5帧上的MC
//我是放在第6帧上的MC
//我是放在第7帧上的MC
//我是放在第8帧上的MC
//我是放在第9帧上的MC
//我是放在第10帧上的MC
&lt;/pre&gt;
&lt;p&gt;效果看这里(点击&quot;再来一次&quot;将跳到随机的帧....)&lt;br /&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
flash(null,'https://dl-web.dropbox.com/u/1184383/blog/post/2010/post-gotoandstop-bug/gotoAndStopT.swf');
&lt;/script&gt;&lt;/p&gt;
&lt;p&gt;杯具就这么发生了..&lt;br /&gt;
明明代码执行的 &quot;&lt;strong&gt;gotoAndStop(10);&lt;/strong&gt;&quot; 跳转到第10帧..&lt;br /&gt;
&lt;strong&gt;可第十帧前的帧里的MC里的代码全执行了一篇..&lt;/strong&gt;...&lt;/p&gt;
&lt;p&gt;从而大概可以认为..&lt;br /&gt;
fp在执行gotoAndStop的时候..&lt;br /&gt;
不是直接进行的跳转..&lt;br /&gt;
而是快速的访问了经过每一帧...&lt;br /&gt;
然后到达目标帧里停止~~~&lt;br /&gt;
可前面的帧里的元件都被创建了...然后又删除了..里边的代码也杯具的被执行了&lt;/p&gt;
&lt;p&gt;真是灰常的郁闷...&lt;/p&gt;
&lt;p&gt;附上代码...&lt;br /&gt;
Note: There is a file embedded within this post, please visit this post to download the file.&lt;/p&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/408799432/l4cd/feedsky/s.gif?r=http://item.feedsky.com/~feedsky/l4cd/~8303221/408799432/5931248/1/item.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/l4cd/408799432/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/l4cd/408799432/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</content:encoded><wfw:commentRss>http://l4cd.net/blog/post-gotoandstop-bug.html/feed</wfw:commentRss><slash:comments>9</slash:comments><description>再提一个gotoAndStop的BUG.. 也是最近项目中遇到的问题... 先看下结构图 在movieClip层中..分别创建了十个MC..放在了十个帧当中.. 每个mc的里有以下的代码 trace(&quot;我是放在第n帧上的MC&quot;);//其中n为自身所在舞台的帧号.. (root as MovieClip).output(&quot;我是放在第n帧上的MC&quot;);//此处只是为了显示在界面上所以加了代码..可以忽略.. 然后code层的第一帧加上了跳转代码 txt.text = &quot;准备执行gotoAndStop(10)\n\n&quot;; gotoAndStop(10); 然后运行..你会发现outpu窗口会输出以下内容: //准备执行gotoAndStop(10) // //我是放在第1帧上的MC //我是放在第2帧上的MC //我是放在第3帧上的MC //我是放在第4帧上的MC //我是放在第5帧上的MC //我是放在第6帧上的MC //我是放在第7帧上的MC //我是放在第8帧上的MC //我是放在第9帧上的MC //我是放在第10帧上的MC 效果看这里(点击&quot;再来一次&quot;将跳到随机的帧....) flash(null,'https://dl-web.dropbox.com/u/1184383/blog/post/2010/post-gotoandstop-bug/gotoAndStopT.swf'); 杯具就这么发生了.. 明明代码执行的 &quot;gotoAndStop(10);&quot; 跳转到第10帧.. 可第十帧前的帧里的MC里的代码全执行了一篇..... 从而大概可以认为.. fp在执行gotoAndStop的时候.. 不是直接进行的跳转.. 而是快速的访问了经过每一帧... 然后到达目标帧里停止~~~ 可前面的帧里的元件都被创建了...然后又删除了..里边的代码也杯具的被执行了 &amp;#8230; &lt;a href=&quot;http://l4cd.net/blog/post-gotoandstop-bug.html&quot;&gt;Continue reading &lt;span class=&quot;meta-nav&quot;&gt;&amp;#8594;&lt;/span&gt;&lt;/a&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/408799432/l4cd/feedsky/s.gif?r=http://item.feedsky.com/~feedsky/l4cd/~8303221/408799432/5931248/1/item.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/l4cd/408799432/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/l4cd/408799432/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category>bug</category><category>gotoandstop</category><category>BUG</category><pubDate>Fri, 23 Apr 2010 18:14:22 +0800</pubDate><author>L4CD.NET</author><comments>http://l4cd.net/blog/post-gotoandstop-bug.html#comments</comments><guid isPermaLink="false">http://blog.l4cd.net/?p=1316</guid><dc:creator>L4CD.NET</dc:creator><fs:srclink>http://l4cd.net/blog/post-gotoandstop-bug.html</fs:srclink><fs:srcfeed>http://l4cd.net/feed</fs:srcfeed><fs:itemid>feedsky/l4cd/~8303221/408799432/5931248</fs:itemid></item><item><title>Flash Player 10.1的BUG~</title><link>http://item.feedsky.com/~feedsky/l4cd/~8303221/408799433/5931248/1/item.html</link><content:encoded>&lt;p&gt;这两个月一直让Flash的BUG搞得要死不活的...&lt;/p&gt;
&lt;p&gt;这里提一个FP10.1的BUG..&lt;br /&gt;
而且也是跟中文有关系...&lt;/p&gt;
&lt;p&gt;一切原由是因为这里&lt;br /&gt;
&lt;a href=&quot;http://blog.l4cd.net/post-old-139.html&quot;&gt;扩展TextField,合理计算中文字符长度&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;在private function input(e:TextEvent):void的函数里&lt;br /&gt;
使用了selectionBeginIndex和selectionEndIndex&lt;br /&gt;
获取用户在操作前的选择位置.. 以便进行文本替换...&lt;br /&gt;
这个方法一直用得好好的&lt;br /&gt;
从fp9到fp10&lt;br /&gt;
从activex到plugin&lt;br /&gt;
但最近开始..时常有用户反应输入时出现问题..&lt;br /&gt;
后来发现出现问题的用户都升级到了10.1版本的播放器..&lt;/p&gt;
&lt;p&gt;排查后发现..问题就出在selectionBeginIndex和selectionEndIndex这两个属性&lt;/p&gt;
&lt;p&gt;在FP10.1下..&lt;br /&gt;
&quot;输入中文&quot;时&lt;br /&gt;
selectionBeginIndex的索引是操作后的索引...而不是操作前的索引&lt;/p&gt;
&lt;p&gt;FP10.1下的&quot;输入英文&quot;或&quot;粘贴中文&quot;均纷纷表示无这样的情况..&lt;br /&gt;
FP10和FP9也表示与自己无关...&lt;/p&gt;
&lt;p&gt;详情看DEMO&lt;br /&gt;
&lt;span id=&quot;more-1303&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
flash(null,&quot;https://dl-web.dropbox.com/u/1184383/blog/post/2010/post-flashplayer-10-1-textfield-textevent-text-input-bug/demo.swf&quot;,550,400);
&lt;/script&gt;&lt;/p&gt;
&lt;p&gt;在上方的输入框中..&lt;br /&gt;
尝试&quot;输入中文&quot;,&quot;输入英文&quot;,&quot;粘贴中文&quot;&lt;br /&gt;
然后看看下方的文本框..&lt;br /&gt;
(假设每次都是输入框都是空的,每次操作一个字符)&lt;br /&gt;
你会发现除了&quot;输入中文&quot;输出为1外..&lt;br /&gt;
其它操作将输出0&lt;/p&gt;
&lt;p&gt;说明了在&quot;输入中文&quot;时..selectionBeginIndex为操作后的索引...&lt;br /&gt;
BUG~~郁闷的BUG~~&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;20100509更新:&lt;/strong&gt;&lt;br /&gt;
发现只有个别输入法会有这样的情况..如QQ五笔/拼音&lt;br /&gt;
用王码五笔一切都正常..&lt;br /&gt;
另外用上述的输入法..&lt;br /&gt;
调用e.preventDefault();将无效~而且会出现奇怪的黄色选中..&lt;/p&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/408799433/l4cd/feedsky/s.gif?r=http://item.feedsky.com/~feedsky/l4cd/~8303221/408799433/5931248/1/item.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/l4cd/408799433/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/l4cd/408799433/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</content:encoded><wfw:commentRss>http://l4cd.net/blog/post-flashplayer-10-1-textfield-textevent-text-input-bug.html/feed</wfw:commentRss><slash:comments>1</slash:comments><description>这两个月一直让Flash的BUG搞得要死不活的... 这里提一个FP10.1的BUG.. 而且也是跟中文有关系... 一切原由是因为这里 扩展TextField,合理计算中文字符长度 在private function input(e:TextEvent):void的函数里 使用了selectionBeginIndex和selectionEndIndex 获取用户在操作前的选择位置.. 以便进行文本替换... 这个方法一直用得好好的 从fp9到fp10 从activex到plugin 但最近开始..时常有用户反应输入时出现问题.. 后来发现出现问题的用户都升级到了10.1版本的播放器.. 排查后发现..问题就出在selectionBeginIndex和selectionEndIndex这两个属性 在FP10.1下.. &quot;输入中文&quot;时 selectionBeginIndex的索引是操作后的索引...而不是操作前的索引 FP10.1下的&quot;输入英文&quot;或&quot;粘贴中文&quot;均纷纷表示无这样的情况.. FP10和FP9也表示与自己无关... 详情看DEMO flash(null,&quot;https://dl-web.dropbox.com/u/1184383/blog/post/2010/post-flashplayer-10-1-textfield-textevent-text-input-bug/demo.swf&quot;,550,400); 在上方的输入框中.. 尝试&quot;输入中文&quot;,&quot;输入英文&quot;,&quot;粘贴中文&quot; 然后看看下方的文本框.. (假设每次都是输入框都是空的,每次操作一个字符) 你会发现除了&quot;输入中文&quot;输出为1外.. 其它操作将输出0 说明了在&quot;输入中文&quot;时..selectionBeginIndex为操作后的索引... BUG~~郁闷的BUG~~ 20100509更新: 发现只有个别输入法会有这样的情况..如QQ五笔/拼音 用王码五笔一切都正常.. 另外用上述的输入法.. 调用e.preventDefault();将无效~而且会出现奇怪的黄色选中..&lt;img src=&quot;http://www1.feedsky.com/t1/408799433/l4cd/feedsky/s.gif?r=http://item.feedsky.com/~feedsky/l4cd/~8303221/408799433/5931248/1/item.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/l4cd/408799433/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/l4cd/408799433/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category>flashplayer</category><category>TextField</category><category>bug</category><category>BUG</category><pubDate>Thu, 22 Apr 2010 17:58:44 +0800</pubDate><author>L4CD.NET</author><comments>http://l4cd.net/blog/post-flashplayer-10-1-textfield-textevent-text-input-bug.html#comments</comments><guid isPermaLink="false">http://blog.l4cd.net/?p=1303</guid><dc:creator>L4CD.NET</dc:creator><fs:srclink>http://l4cd.net/blog/post-flashplayer-10-1-textfield-textevent-text-input-bug.html</fs:srclink><fs:srcfeed>http://l4cd.net/feed</fs:srcfeed><fs:itemid>feedsky/l4cd/~8303221/408799433/5931248</fs:itemid></item><item><title>关于自定义事件中override clone的问题</title><link>http://item.feedsky.com/~feedsky/l4cd/~8303221/408799434/5931248/1/item.html</link><content:encoded>&lt;p&gt;今天群里讨论起自定义事件中clone是否有必要...&lt;br /&gt;
可能有些的朋友认为..&lt;br /&gt;
我又不需要复制event对象..&lt;br /&gt;
或者clone根本没用...&lt;/p&gt;
&lt;p&gt;对于这个问题..&lt;br /&gt;
其实as3内部在进行dispatchEvent转发的时候...&lt;br /&gt;
会自动调用event.clone()的方法复制一个新的实例进行派发..&lt;br /&gt;
如果你的自定义事件没有重写clone..那行接收到的转发事件的类型实际为Event...&lt;/p&gt;
&lt;p&gt;我们看下下面的例子&lt;br /&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
flash(null,&quot;https://dl-web.dropbox.com/u/1184383/blog/post/2010/post-custom-event-override-clone/Main.swf&quot;,550,400);
&lt;/script&gt;&lt;br /&gt;
&lt;span id=&quot;more-1299&quot;&gt;&lt;/span&gt;&lt;br /&gt;
点击左边的&quot;CloneEvent&quot;按钮..下方将正常显示自定义事件的属性值..&lt;br /&gt;
点击右边的&quot;NoCloneEvent&quot;按钮...将会报错..Event不存在data属性..&lt;/p&gt;
&lt;p&gt;先看下flash的结构&lt;br /&gt;
&lt;img src=&quot;https://dl-web.dropbox.com/u/1184383/blog/post/2010/post-custom-event-override-clone/custom-event-override-clone.jpg&quot; alt=&quot;custom-event-override-clone&quot; /&gt;&lt;br /&gt;
点击按钮里分别派发各自的事件..&lt;br /&gt;
然后由Group接收到后再转发出去..&lt;br /&gt;
由Main接收到后显示事件里的data属性...&lt;/p&gt;
&lt;p&gt;由于NoCloneEvent并没有override clone..所以转发时已经成了Event事件..&lt;br /&gt;
Main获取data属性时就报错了...&lt;/p&gt;
&lt;p&gt;所以要写自定义事件时..还是建议override clone..&lt;/p&gt;
&lt;p&gt;表达能力太差....8知道有没说清楚...&lt;br /&gt;
各位可以下载上面flash的代码看下...&lt;br /&gt;
Note: There is a file embedded within this post, please visit this post to download the file.&lt;/p&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/408799434/l4cd/feedsky/s.gif?r=http://item.feedsky.com/~feedsky/l4cd/~8303221/408799434/5931248/1/item.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/l4cd/408799434/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/l4cd/408799434/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</content:encoded><wfw:commentRss>http://l4cd.net/blog/post-custom-event-override-clone.html/feed</wfw:commentRss><slash:comments>6</slash:comments><description>今天群里讨论起自定义事件中clone是否有必要... 可能有些的朋友认为.. 我又不需要复制event对象.. 或者clone根本没用... 对于这个问题.. 其实as3内部在进行dispatchEvent转发的时候... 会自动调用event.clone()的方法复制一个新的实例进行派发.. 如果你的自定义事件没有重写clone..那行接收到的转发事件的类型实际为Event... 我们看下下面的例子 flash(null,&quot;https://dl-web.dropbox.com/u/1184383/blog/post/2010/post-custom-event-override-clone/Main.swf&quot;,550,400); 点击左边的&quot;CloneEvent&quot;按钮..下方将正常显示自定义事件的属性值.. 点击右边的&quot;NoCloneEvent&quot;按钮...将会报错..Event不存在data属性.. 先看下flash的结构 点击按钮里分别派发各自的事件.. 然后由Group接收到后再转发出去.. 由Main接收到后显示事件里的data属性... 由于NoCloneEvent并没有override clone..所以转发时已经成了Event事件.. Main获取data属性时就报错了... 所以要写自定义事件时..还是建议override clone.. 表达能力太差....8知道有没说清楚... 各位可以下载上面flash的代码看下...&lt;img src=&quot;http://www1.feedsky.com/t1/408799434/l4cd/feedsky/s.gif?r=http://item.feedsky.com/~feedsky/l4cd/~8303221/408799434/5931248/1/item.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/feedsky/l4cd/408799434/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/feedsky/l4cd/408799434/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category>自定义事件</category><category>ACTIONSCRIPT</category><category>custom</category><category>event</category><category>clone</category><category>override</category><pubDate>Thu, 22 Apr 2010 11:57:39 +0800</pubDate><author>L4CD.NET</author><comments>http://l4cd.net/blog/post-custom-event-override-clone.html#comments</comments><guid isPermaLink="false">http://blog.l4cd.net/?p=1299</guid><dc:creator>L4CD.NET</dc:creator><fs:srclink>http://l4cd.net/blog/post-custom-event-override-clone.html</fs:srclink><fs:srcfeed>http://l4cd.net/feed</fs:srcfeed><fs:itemid>feedsky/l4cd/~8303221/408799434/5931248</fs:itemid></item></channel></rss>