<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>撒旦 &#187; 开发</title>
	<atom:link href="http://blog.xnux.net/category/%e5%bc%80%e5%8f%91/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.xnux.net</link>
	<description>still life ...</description>
	<lastBuildDate>Wed, 06 Jan 2010 18:34:30 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>整理一下lighttpd+php在iPhone上的安装的方法</title>
		<link>http://blog.xnux.net/2009/04/03/iphone_lighttpd_php5_mysql5/</link>
		<comments>http://blog.xnux.net/2009/04/03/iphone_lighttpd_php5_mysql5/#comments</comments>
		<pubDate>Fri, 03 Apr 2009 02:34:57 +0000</pubDate>
		<dc:creator>Jack.f</dc:creator>
				<category><![CDATA[iPhone]]></category>
		<category><![CDATA[开发]]></category>
		<category><![CDATA[技术]]></category>
		<category><![CDATA[cgi]]></category>
		<category><![CDATA[fastcgi]]></category>
		<category><![CDATA[lighttpd]]></category>
		<category><![CDATA[mod_fastcgi]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://blog.xnux.net/?p=83</guid>
		<description><![CDATA[&#62; Win32使用putty，linux和mac osx使用ssh连接到iPhone;
&#62; 安装php和lighttpd;
apt-get update; apt-get install php; apt-get install lighttpd
&#62; 创建布署目录;
mkdir -p /var/www/htdocs
&#62; 修改lighttpd配置;
vi /usr/local/etc/lighttpd.conf
修改:
server.document-root = "/var/www/htdocs"
server.modules = ( "mod_fastcgi" )
server.tag = "lighttpd 1.4.18/PHP 5.2.8 (cgi-fcgi)"   #此处可以随意填写
server.pid-file = "/var/run/lighttpd.pid"
index-file.names = ( "index.php", "index.py", "index.html", "index.htm" ) #根据自己需要填写
static-file.exclude-extensions = ( ".php", ".fcgi", ".cgi", ".py" )
 fastcgi.map-extensions = ( ".php3"=&#62;".php" )
 fastcgi.server = (
    ".php"=&#62;((
       [...]]]></description>
			<content:encoded><![CDATA[<p>&gt; Win32使用putty，linux和mac osx使用ssh连接到iPhone;</p>
<p>&gt; 安装php和lighttpd;</p>
<blockquote><p>apt-get update; apt-get install php; apt-get install lighttpd</p></blockquote>
<p>&gt; 创建布署目录;</p>
<blockquote><p>mkdir -p /var/www/htdocs</p></blockquote>
<p>&gt; 修改lighttpd配置;</p>
<blockquote><p>vi /usr/local/etc/lighttpd.conf</p>
<p>修改:</p>
<p>server.document-root = "<span style="color: #ff0000;">/var/www/htdocs</span>"<br />
server.modules = ( <span style="color: #ff0000;">"mod_fastcgi"</span> )<br />
server.tag = "<span style="color: #ff0000;">lighttpd 1.4.18/PHP 5.2.8 (cgi-fcgi)</span>"   #此处可以随意填写<br />
server.pid-file = "<span style="color: #ff0000;">/var/run/lighttpd.pid</span>"<br />
index-file.names = (<span style="color: #ff0000;"> "index.php", "index.py", "index.html", "index.htm"</span> ) #根据自己需要填写<br />
static-file.exclude-extensions = ( <span style="color: #ff0000;">".php"</span>, ".fcgi", ".cgi", ".py" )<br />
<span style="color: #ff0000;"> fastcgi.map-extensions = ( ".php3"=&gt;".php" )</span><br />
<span style="color: #ff0000;"> fastcgi.server = (<br />
    ".php"=&gt;((<br />
        "host"=&gt;"127.0.0.1",<br />
        "port"=&gt;9000,<br />
        "broken-scriptfilename"=&gt;"enable",<br />
        "fix-root-scriptname"=&gt;"enable"<br />
    ))<br />
)</span><br />
cgi.assign = (<br />
     ".py" =&gt; "/usr/bin/python"  # 如果安装python的话，可以考虑添加这行<br />
)</p>
<p>#其它保持不变<br />
memetype.assign ...</p></blockquote>
<p>&gt; 运行;</p>
<blockquote><p>php-cgi -b 127.0.0.1:9000 &amp;</p>
<p>lighttpd -f /usr/local/etc/lighttpd.conf &amp;</p></blockquote>
<p>&gt; 测试;</p>
<blockquote><p>echo "&lt;?php phpinfo(); ?&gt;" &gt; /var/www/htdocs/info.php</p>
<p>打开safari，输入地址 http://localhost/info.php</p></blockquote>
<p> </p>
<p>以上操作必备条件，jb过的iPhone，已经安装unix subsystem，mobile terminal，cydia，openssl，openssh。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.xnux.net/2009/04/03/iphone_lighttpd_php5_mysql5/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Flash毒药收集</title>
		<link>http://blog.xnux.net/2009/04/01/flash_poisons/</link>
		<comments>http://blog.xnux.net/2009/04/01/flash_poisons/#comments</comments>
		<pubDate>Wed, 01 Apr 2009 03:06:47 +0000</pubDate>
		<dc:creator>Jack.f</dc:creator>
				<category><![CDATA[开发]]></category>
		<category><![CDATA[技术]]></category>
		<category><![CDATA[破坏]]></category>
		<category><![CDATA[as3]]></category>
		<category><![CDATA[crash]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[flash cs]]></category>
		<category><![CDATA[flashplayer]]></category>
		<category><![CDATA[Matrix3D]]></category>

		<guid isPermaLink="false">http://blog.xnux.net/?p=67</guid>
		<description><![CDATA[第一剂:
new Matrix3D().append(null);
杀伤力: 4星
辐射面: flash cs4, flashplayer 10.*, as3
症状: flash cs4 意外退出，flashplayer 10.*直接crash
来源: D.S
第二剂:
var a=&#60;a&#62;&#60;n/&#62;&#60;/a&#62;
a.@* = a.@*;
a.toString();
杀伤力: 5星
辐射面: flash cs3/4, flashplayer 9/10, as3
症状: flash cs3, 4 crash，flashplayer9以上播放swf时直接crash
来源: Ticore's Blog
第三剂:
Object['isPrototypeOf']();
Object['hasOwnPrototype']();
Object['propertyIsEnumerable']();
Object['setPropertyIsEnumerable']();
//(以上任意一行)
杀伤力: 5星
辐射面: flash cs3/4, flashplayer 9/10, as3
症状: flash cs3, 4 crash，flashplayer9以上播放swf时直接crash
来源: Ticore's Blog
]]></description>
			<content:encoded><![CDATA[<p><strong>第一剂:</strong></p>
<p>new Matrix3D().append(null);</p>
<p>杀伤力: 4星<br />
辐射面: flash cs4, flashplayer 10.*, as3<br />
症状: flash cs4 意外退出，flashplayer 10.*直接crash<br />
来源: D.S</p>
<p><strong>第二剂:</strong></p>
<p>var a=&lt;a&gt;&lt;n/&gt;&lt;/a&gt;<br />
a.@* = a.@*;<br />
a.toString();</p>
<p>杀伤力: 5星<br />
辐射面: flash cs3/4, flashplayer 9/10, as3<br />
症状: flash cs3, 4 crash，flashplayer9以上播放swf时直接crash<br />
来源: <a href="http://ticore.blogspot.com/">Ticore's Blog</a></p>
<p><strong>第三剂:</strong></p>
<p>Object['isPrototypeOf']();<br />
Object['hasOwnPrototype']();<br />
Object['propertyIsEnumerable']();<br />
Object['setPropertyIsEnumerable']();</p>
<p>//(以上任意一行)</p>
<p>杀伤力: 5星<br />
辐射面: flash cs3/4, flashplayer 9/10, as3<br />
症状: flash cs3, 4 crash，flashplayer9以上播放swf时直接crash<br />
来源: <a href="http://ticore.blogspot.com/">Ticore's Blog</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.xnux.net/2009/04/01/flash_poisons/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>你怎么用iPhone？</title>
		<link>http://blog.xnux.net/2009/03/25/iphone_do_anything/</link>
		<comments>http://blog.xnux.net/2009/03/25/iphone_do_anything/#comments</comments>
		<pubDate>Wed, 25 Mar 2009 12:23:21 +0000</pubDate>
		<dc:creator>Jack.f</dc:creator>
				<category><![CDATA[iPhone]]></category>
		<category><![CDATA[开发]]></category>
		<category><![CDATA[技术]]></category>
		<category><![CDATA[3proxy]]></category>
		<category><![CDATA[actionscript]]></category>
		<category><![CDATA[apt-get]]></category>
		<category><![CDATA[google ape]]></category>
		<category><![CDATA[gprs]]></category>
		<category><![CDATA[httpd]]></category>
		<category><![CDATA[links]]></category>
		<category><![CDATA[putty]]></category>
		<category><![CDATA[sqlite]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[svn]]></category>
		<category><![CDATA[vi]]></category>
		<category><![CDATA[vim]]></category>
		<category><![CDATA[winscp]]></category>

		<guid isPermaLink="false">http://blog.xnux.net/?p=48</guid>
		<description><![CDATA[iPhone的操作系统是mac os x，越狱的iPhone通常都会带上unix subsystem，也就意味着iPhone已经不再是手机那么简单，反正在我的眼里它就是一台可以随身携带的迷你unix server，不过要借助ssh客户端软件，比如putty。
列一下我在iPhone上最常用的命令行工具:
&#62; svn：用于从开源社区，如Google Code获取源码;
&#62; wget：命令行下载工具;
&#62; apt：基于命令行的软件管理工具，可以完成cydia所能做的事;
&#62; links：基于命令行的浏览器，超屌，应用场景嘛，自己想想，类似的工具还有lynx，可以用apt-get安装;
&#62; top：类似windows任务管理器，不过不能直接关掉进程，需要使用kill/killall来关闭;
&#62; killall：关闭指定程序名称的所有进程，killall SpringBoard;
&#62; vim：用来代替subsystem自带的vi，我是直接用apt-get install vim安装的，支持大部分语法高亮，我另外安装了actionscript 1.0 - 3.0的语法包;
&#62; httpd：http服务器，可以装php5，当开发用的server来跑;
&#62; sqlite：命令行下访问通讯录等数据库;
&#62; google appengine sdk：开发使用google ape服务python应用;
&#62; 3proxy：在iPhone上架设代理服务器，特殊情形下，用于笔记本利用wifi通过iPhone GPRS上网，包含socks/http(s)/imap;
&#62; iphone sdk：可以在iPhone上开发iPhone使用的xcode代码(有点绕)，需要安装gcc for iphone;
还有不少东东就没有写，总而言之，你还真“别拿iPhone不当电脑” ，如果你愿意，可以把iPhone当网站服务器用，嘿嘿...
这些东东已经小用了数月，也小有体会，如果有同样需求要的同学，可以留言，一起发掘iPhone的潜力，下面上几张小图。
 
 
]]></description>
			<content:encoded><![CDATA[<p>iPhone的操作系统是mac os x，越狱的iPhone通常都会带上unix subsystem，也就意味着iPhone已经不再是手机那么简单，反正在我的眼里它就是一台可以随身携带的迷你unix server，不过要借助ssh客户端软件，比如putty。</p>
<p>列一下我在iPhone上最常用的命令行工具:</p>
<p>&gt; svn：用于从开源社区，如<a title="google code" href="http://code.google.com/" target="_blank">Google Code</a>获取源码;</p>
<p>&gt; wget：命令行下载工具;</p>
<p>&gt; apt：基于命令行的软件管理工具，可以完成cydia所能做的事;</p>
<p>&gt; links：基于命令行的浏览器，超屌，应用场景嘛，自己想想，类似的工具还有lynx，可以用apt-get安装;</p>
<p>&gt; top：类似windows任务管理器，不过不能直接关掉进程，需要使用kill/killall来关闭;</p>
<p>&gt; killall：关闭指定程序名称的所有进程，killall SpringBoard;</p>
<p>&gt; vim：用来代替subsystem自带的vi，我是直接用apt-get install vim安装的，支持大部分语法高亮，我另外安装了actionscript 1.0 - 3.0的语法包;</p>
<p>&gt; httpd：http服务器，可以装php5，当开发用的server来跑;</p>
<p>&gt; sqlite：命令行下访问通讯录等数据库;</p>
<p>&gt; google appengine sdk：开发使用google ape服务python应用;</p>
<p>&gt; 3proxy：在iPhone上架设代理服务器，特殊情形下，用于笔记本利用wifi通过iPhone GPRS上网，包含socks/http(s)/imap;</p>
<p>&gt; iphone sdk：可以在iPhone上开发iPhone使用的xcode代码(有点绕)，需要安装gcc for iphone;</p>
<p>还有不少东东就没有写，总而言之，你还真“别拿iPhone不当电脑” ，如果你愿意，可以把iPhone当网站服务器用，嘿嘿...</p>
<p>这些东东已经小用了数月，也小有体会，如果有同样需求要的同学，可以留言，一起发掘iPhone的潜力，下面上几张小图。</p>
<div id="attachment_55" class="wp-caption alignnone" style="width: 160px"><a href="http://blog.xnux.net/wp-content/uploads/2009/03/iphone_putty_sqlite3.jpg"><img class="size-thumbnail wp-image-55 " title="iphone_putty_sqlite3" src="http://blog.xnux.net/wp-content/uploads/2009/03/iphone_putty_sqlite3-150x123.jpg" alt="iphone_putty_sqlite3" width="150" height="123" /></a><p class="wp-caption-text">sqlite</p></div>
<div id="attachment_54" class="wp-caption alignnone" style="width: 160px"><a href="http://blog.xnux.net/wp-content/uploads/2009/03/iphone_putty_links.jpg"><img class="size-thumbnail wp-image-54 " title="iphone_putty_links" src="http://blog.xnux.net/wp-content/uploads/2009/03/iphone_putty_links-150x150.jpg" alt="links for iPhone" width="150" height="150" /></a><p class="wp-caption-text">links</p></div>
<p> </p>
<div id="attachment_53" class="wp-caption alignnone" style="width: 160px"><a href="http://blog.xnux.net/wp-content/uploads/2009/03/iphone_putty_as.jpg"><img class="size-thumbnail wp-image-53 " title="iphone_putty_as" src="http://blog.xnux.net/wp-content/uploads/2009/03/iphone_putty_as-150x150.jpg" alt="actionscript syntax" width="150" height="150" /></a><p class="wp-caption-text">actionscript syntax</p></div>
<div id="attachment_52" class="wp-caption alignnone" style="width: 160px"><a href="http://blog.xnux.net/wp-content/uploads/2009/03/iphone_putty_ape.jpg"><img class="size-thumbnail wp-image-52 " title="iphone_putty_ape" src="http://blog.xnux.net/wp-content/uploads/2009/03/iphone_putty_ape-150x150.jpg" alt="google ape" width="150" height="150" /></a><p class="wp-caption-text">google ape</p></div>
<p> </p>
<div id="attachment_51" class="wp-caption alignnone" style="width: 160px"><a href="http://blog.xnux.net/wp-content/uploads/2009/03/iphone_putty.jpg"><img class="size-thumbnail wp-image-51 " title="iphone_putty" src="http://blog.xnux.net/wp-content/uploads/2009/03/iphone_putty-150x150.jpg" alt="python" width="150" height="150" /></a><p class="wp-caption-text">python</p></div>
]]></content:encoded>
			<wfw:commentRss>http://blog.xnux.net/2009/03/25/iphone_do_anything/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iPhone OS3.0发布会</title>
		<link>http://blog.xnux.net/2009/03/18/iphone-os30/</link>
		<comments>http://blog.xnux.net/2009/03/18/iphone-os30/#comments</comments>
		<pubDate>Tue, 17 Mar 2009 18:57:59 +0000</pubDate>
		<dc:creator>Jack.f</dc:creator>
				<category><![CDATA[iPhone]]></category>
		<category><![CDATA[开发]]></category>
		<category><![CDATA[酷玩]]></category>

		<guid isPermaLink="false">http://blog.xnux.net/?p=38</guid>
		<description><![CDATA[苹果的iPhone OS 3.0发布会如期进行，瘾科技总部进行了全程直播，不才对大家比较关心的问题进行了摘要，爽一下 ...
SDK新增1000个API，先出场的是主要API部分:
&#62; 允许应用程序调用支付接口: 比如用户玩游戏时，弹出购卖下一关游戏的提示，点击buy可以直接进入支付流程;
&#62; 点对点连接: 允许游戏及其它类型程序查找并连接到附近的其它iphone/ipod touch设备, 进行wifi/bluetooth通讯(应该是调用苹果的bonjour服务);
&#62; 硬件接口直接访问: 比如通过com端口与第三方硬件通讯, 实现血压测量之类的功能, 也可以通过wifi/bluetooth通讯;
&#62; Google地图API开放: 允许开发者将地图嵌入到自己的应用程序中(估计类似maps.google.com的api);
&#62; 推送(push): 允许开发者调用苹果的推送服务，实现无background task的推送, 说是为了省电;
应用功能部分:
&#62; 复制、粘贴: 期待已久的功能终于登场, 输入内容时双击单词, 会自动选中, 并弹出编辑栏, 有CUT/COPY/PASTE按钮, 点击空白编辑区, 编辑栏按钮变为SELECT/SELECT ALL/PASTE, 在Safari里在文字区域长按，则出现选框，选框四周带可拖动的小圆点，看似只支持矩形选框，意味着可以纵向选择，在Safari里支持对html格式的复制，支持undo，特别指出在任何应用程序均可使用，更值得兴奋的是复制粘贴功能对相册里的照片同样适用，cool! 不同的是照片需要勾选，可以直接粘在email正文里;
&#62; MMS支持: 终于出现了，当初可是很多人因为这个放弃iPhone的哦;
&#62; 横向键盘支持: 在Email/SMS/Notes里均可使用横向键盘模式;
&#62; SMS支持转发和直接删除按钮: 这个不用细说了;
&#62; 语音备忘录: 也有很多人期待这个功能，个人没啥感觉;
&#62; 增加对CalDAV协议支持: 应该有不少人对此比较陌生，不太了解这个协议;
&#62; 全局搜索: 类似MAC的Spotlight，可以搜索Contacts/iPod/Notes/SMS/Mail ...，比较特别的是专门创建了一个Home screen来使用这个功能;
&#62; 其它: Stereo Bluetooth(A2DP)，Wifi autologin, youtube accounts, notes sync, shake to [...]]]></description>
			<content:encoded><![CDATA[<p>苹果的iPhone OS 3.0发布会如期进行，瘾科技总部进行了全程直播，不才对大家比较关心的问题进行了摘要，爽一下 ...</p>
<p><strong>SDK新增1000个API，先出场的是主要API部分:</strong></p>
<p>&gt; 允许应用程序调用支付接口: 比如用户玩游戏时，弹出购卖下一关游戏的提示，点击buy可以直接进入支付流程;</p>
<p>&gt; 点对点连接: 允许游戏及其它类型程序查找并连接到附近的其它iphone/ipod touch设备, 进行wifi/bluetooth通讯(应该是调用苹果的bonjour服务);</p>
<p>&gt; 硬件接口直接访问: 比如通过com端口与第三方硬件通讯, 实现血压测量之类的功能, 也可以通过wifi/bluetooth通讯;</p>
<p>&gt; Google地图API开放: 允许开发者将地图嵌入到自己的应用程序中(估计类似maps.google.com的api);</p>
<p>&gt; 推送(push): 允许开发者调用苹果的推送服务，实现无background task的推送, 说是为了省电;</p>
<p><strong>应用功能部分:</strong></p>
<p>&gt; 复制、粘贴: 期待已久的功能终于登场, 输入内容时双击单词, 会自动选中, 并弹出编辑栏, 有CUT/COPY/PASTE按钮, 点击空白编辑区, 编辑栏按钮变为SELECT/SELECT ALL/PASTE, 在Safari里在文字区域长按，则出现选框，选框四周带可拖动的小圆点，看似只支持矩形选框，意味着可以纵向选择，在Safari里支持对html格式的复制，支持undo，特别指出在任何应用程序均可使用，更值得兴奋的是复制粘贴功能对相册里的照片同样适用，cool! 不同的是照片需要勾选，可以直接粘在email正文里;</p>
<p>&gt; MMS支持: 终于出现了，当初可是很多人因为这个放弃iPhone的哦;</p>
<p>&gt; 横向键盘支持: 在Email/SMS/Notes里均可使用横向键盘模式;</p>
<p>&gt; SMS支持转发和直接删除按钮: 这个不用细说了;</p>
<p>&gt; 语音备忘录: 也有很多人期待这个功能，个人没啥感觉;</p>
<p>&gt; 增加对CalDAV协议支持: 应该有不少人对此比较陌生，不太了解这个协议;</p>
<p>&gt; 全局搜索: 类似MAC的Spotlight，可以搜索Contacts/iPod/Notes/SMS/Mail ...，比较特别的是专门创建了一个Home screen来使用这个功能;</p>
<p>&gt; 其它: Stereo Bluetooth(A2DP)，Wifi autologin, youtube accounts, notes sync, shake to shuffle, anti-phishing, auto-fill, parental controls,  ...</p>
<p>&gt; 最后: iphone 2g,3g均可以免费升级，ipod touch需要支付$9.95，一代iPhone不支持A2DP和MMS(suck!!!);</p>
<p> </p>
<p>可以到<a title="Live from apple's iPhone OS 3.0 preview event" href="http://www.engadget.com/2009/03/17/live-from-apples-iphone-os-3-0-preview-event/" target="_blank">这里</a>查看英文原文以及全部现场图片。 赞一下瘾科技的专业！！</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.xnux.net/2009/03/18/iphone-os30/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>有用的formatString,支持Actionscript1.0</title>
		<link>http://blog.xnux.net/2008/01/25/actionscript_formatstring/</link>
		<comments>http://blog.xnux.net/2008/01/25/actionscript_formatstring/#comments</comments>
		<pubDate>Thu, 24 Jan 2008 16:28:28 +0000</pubDate>
		<dc:creator>Jack.f</dc:creator>
				<category><![CDATA[开发]]></category>
		<category><![CDATA[actionscript]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[C/C++]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[formatString]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[printf]]></category>
		<category><![CDATA[string.Format]]></category>

		<guid isPermaLink="false">http://blog.xnux.net/2008/01/25/%e6%9c%89%e7%94%a8%e7%9a%84formatstring%e6%94%af%e6%8c%81actionscript10/</guid>
		<description><![CDATA[有用过C#, C/C++, PHP的人都应该知道string.Format或者printf吧! 下面我们让AS也有这样的功能. 什么? 没听说过 ... 拖出去TJJ ...
&#160;
var formatString = function&#40;m&#41;
&#123;
  if &#40;m.indexOf&#40;&#34;{&#34;&#41;==-1&#41; return m;
  var r=&#34;&#34;,n=&#34;&#34;;
  for&#40;var i=0;i&#60;m.length;i++&#41;
  &#123;
    if &#40;m.charAt&#40;i&#41;==&#34;{&#34;&#41;
    &#123;
      i++;
      for&#40;n=&#34;&#34;;m.charAt&#40;i&#41;!=&#34;}&#34;;i++&#41;
        n+=m.charAt&#40;i&#41;;
   [...]]]></description>
			<content:encoded><![CDATA[<p>有用过C#, C/C++, PHP的人都应该知道string.Format或者printf吧! 下面我们让AS也有这样的功能. 什么? 没听说过 ... 拖出去TJJ ...</p>
<pre class="actionscript">&nbsp;
<span style="color: #000000; font-weight: bold;">var</span> formatString = <span style="color: #000000; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span>m<span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#123;</span>
  <span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span>m.<span style="color: #0066CC;">indexOf</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;{&quot;</span><span style="color: #66cc66;">&#41;</span>==<span style="color: #cc66cc;">-1</span><span style="color: #66cc66;">&#41;</span> <span style="color: #b1b100;">return</span> m;
  <span style="color: #000000; font-weight: bold;">var</span> r=<span style="color: #ff0000;">&quot;&quot;</span>,n=<span style="color: #ff0000;">&quot;&quot;</span>;
  <span style="color: #b1b100;">for</span><span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">var</span> i=<span style="color: #cc66cc;">0</span>;i&lt;m.<span style="color: #0066CC;">length</span>;i++<span style="color: #66cc66;">&#41;</span>
  <span style="color: #66cc66;">&#123;</span>
    <span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span>m.<span style="color: #0066CC;">charAt</span><span style="color: #66cc66;">&#40;</span>i<span style="color: #66cc66;">&#41;</span>==<span style="color: #ff0000;">&quot;{&quot;</span><span style="color: #66cc66;">&#41;</span>
    <span style="color: #66cc66;">&#123;</span>
      i++;
      <span style="color: #b1b100;">for</span><span style="color: #66cc66;">&#40;</span>n=<span style="color: #ff0000;">&quot;&quot;</span>;m.<span style="color: #0066CC;">charAt</span><span style="color: #66cc66;">&#40;</span>i<span style="color: #66cc66;">&#41;</span>!=<span style="color: #ff0000;">&quot;}&quot;</span>;i++<span style="color: #66cc66;">&#41;</span>
        n+=m.<span style="color: #0066CC;">charAt</span><span style="color: #66cc66;">&#40;</span>i<span style="color: #66cc66;">&#41;</span>;
      <span style="color: #b1b100;">if</span> <span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">isNaN</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">parseInt</span><span style="color: #66cc66;">&#40;</span>n<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
      <span style="color: #66cc66;">&#123;</span>
        r+=<span style="color: #ff0000;">&quot;{&quot;</span>;
        i-=n.<span style="color: #006600;">length</span><span style="color: #cc66cc;">+1</span>;
        <span style="color: #b1b100;">continue</span>;
      <span style="color: #66cc66;">&#125;</span>
      i++;
      r+=<span style="color: #0066CC;">arguments</span><span style="color: #66cc66;">&#91;</span><span style="color: #0066CC;">parseInt</span><span style="color: #66cc66;">&#40;</span>n<span style="color: #66cc66;">&#41;</span><span style="color: #cc66cc;">+1</span><span style="color: #66cc66;">&#93;</span>;
    <span style="color: #66cc66;">&#125;</span>
    r += m.<span style="color: #0066CC;">charAt</span><span style="color: #66cc66;">&#40;</span>i<span style="color: #66cc66;">&#41;</span>;
  <span style="color: #66cc66;">&#125;</span>
  <span style="color: #b1b100;">return</span> r;
<span style="color: #66cc66;">&#125;</span>;
&nbsp;
<span style="color: #808080; font-style: italic;">/* usage:
var model = &quot;&lt;font size='{2}'&gt;&lt;b&gt;{0}&lt;/b&gt;+&lt;b&gt;{1}&lt;/b&gt;=&lt;b&gt;{0}&lt;/b&gt;&lt;/font&gt;&quot;;
var str = formatString(model, 100, 0, 9);
trace(str);
// output: &lt;font size='9'&gt;&lt;b&gt;100&lt;/b&gt;+&lt;b&gt;0&lt;/b&gt;=&lt;b&gt;100&lt;/b&gt;&lt;/font&gt;
*/</span> 就这么简单, 如果觉得不爽, 你可以继续使用:
<span style="color: #000000; font-weight: bold;">var</span> str = <span style="color: #ff0000;">&quot;&lt;font size='&quot;</span><span style="color: #cc66cc;">+9</span>+<span style="color: #ff0000;">&quot;'&gt;&lt;b&gt;&quot;</span><span style="color: #cc66cc;">+100</span>+<span style="color: #ff0000;">&quot;&lt;/b&gt;+&lt;b&gt;&quot;</span><span style="color: #cc66cc;">+0</span>+<span style="color: #ff0000;">&quot;&lt;/b&gt;=&lt;b&gt;&quot;</span><span style="color: #cc66cc;">+100</span>+<span style="color: #ff0000;">&quot;&lt;/b&gt;&lt;/font&gt;&quot;</span>;
<span style="color: #0066CC;">trace</span><span style="color: #66cc66;">&#40;</span>... 狂呕中 ...
&nbsp;</pre>
<p><strong>顺便说一句: </strong>函数体不用修改, 直接拿到html里当Javascript使, 也可以</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.xnux.net/2008/01/25/actionscript_formatstring/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>瘦版的Delegate,支持Actionscript1.0</title>
		<link>http://blog.xnux.net/2008/01/24/actionscript_delegate/</link>
		<comments>http://blog.xnux.net/2008/01/24/actionscript_delegate/#comments</comments>
		<pubDate>Thu, 24 Jan 2008 15:33:28 +0000</pubDate>
		<dc:creator>Jack.f</dc:creator>
				<category><![CDATA[开发]]></category>
		<category><![CDATA[actionscript]]></category>
		<category><![CDATA[delegate]]></category>
		<category><![CDATA[Delegate.create]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[mx.utils.Delegate]]></category>

		<guid isPermaLink="false">http://blog.xnux.net/2008/01/24/actionscript_delegate/</guid>
		<description><![CDATA[ Actionscript 2.0 内置了mx.utils.Delegate的类, 用法就不说了, 自己查查Google, 写了个瘦版的, 经测试可以支持Actionscript 1.0 ...
&#160;
var fns = &#91;&#93;;
var delegate = function&#40;o, f&#41;
&#123;
    var i = fns.length;
    var fn = function&#40;&#41;&#123; fns&#91;i&#93;.f.apply&#40;fns&#91;i&#93;.o, &#91;arguments,this&#93;&#41;; &#125;;
    fns&#91;i&#93; = &#123;o:o, f:f&#125;;
    return fn;
&#125;
&#160;
/* usage:
var onStart = function()
{
    trace(this);
};
&#160;
btn_start.onRelease = delegate(this, onStart); [...]]]></description>
			<content:encoded><![CDATA[<p> Actionscript 2.0 内置了mx.utils.Delegate的类, 用法就不说了, 自己查查Google, 写了个瘦版的, 经测试可以支持Actionscript 1.0 ...</p>
<pre class="actionscript">&nbsp;
<span style="color: #000000; font-weight: bold;">var</span> fns = <span style="color: #66cc66;">&#91;</span><span style="color: #66cc66;">&#93;</span>;
<span style="color: #000000; font-weight: bold;">var</span> delegate = <span style="color: #000000; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span>o, f<span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">&#123;</span>
    <span style="color: #000000; font-weight: bold;">var</span> i = fns.<span style="color: #0066CC;">length</span>;
    <span style="color: #000000; font-weight: bold;">var</span> fn = <span style="color: #000000; font-weight: bold;">function</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span> fns<span style="color: #66cc66;">&#91;</span>i<span style="color: #66cc66;">&#93;</span>.<span style="color: #006600;">f</span>.<span style="color: #0066CC;">apply</span><span style="color: #66cc66;">&#40;</span>fns<span style="color: #66cc66;">&#91;</span>i<span style="color: #66cc66;">&#93;</span>.<span style="color: #006600;">o</span>, <span style="color: #66cc66;">&#91;</span><span style="color: #0066CC;">arguments</span>,<span style="color: #0066CC;">this</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span>; <span style="color: #66cc66;">&#125;</span>;
    fns<span style="color: #66cc66;">&#91;</span>i<span style="color: #66cc66;">&#93;</span> = <span style="color: #66cc66;">&#123;</span>o:o, f:f<span style="color: #66cc66;">&#125;</span>;
    <span style="color: #b1b100;">return</span> fn;
<span style="color: #66cc66;">&#125;</span>
&nbsp;
<span style="color: #808080; font-style: italic;">/* usage:
var onStart = function()
{
    trace(this);
};
&nbsp;
btn_start.onRelease = delegate(this, onStart); // output: _level0
//btn_start.onRelease = onStart; // output: _level0.btn_start
*/</span>
&nbsp;</pre>
<p>为什么说是廋版的呢, 其实就是编译后的文件小了一些, 看数据:</p>
<p>使用 mx.utils.Delegate, 文件大小会增加<strong>841 byte</strong>, 使用上面的代码, 文件大小只增加<strong>379 byte</strong>, 瘦了<strong>462 byte</strong>, 相当于小了一半多, 如果算上调用语法所占的大小, 应该不只少<strong>462 byte</strong>.虽然按字节数来说, 瘦得不多, 可是大家都知道积少成多的道理, 环保呀 ...</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.xnux.net/2008/01/24/actionscript_delegate/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
