<?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; mx.utils.Delegate</title>
	<atom:link href="http://blog.xnux.net/tag/mxutilsdelegate/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>瘦版的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>
