<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Comments on: Custom Binding Released!</title>
	<atom:link href="http://xtyler.com/code/177/feed" rel="self" type="application/rss+xml" />
	<link>http://xtyler.com/code/177</link>
	<description>a developer&#039;s blog.</description>
	<lastBuildDate>Tue, 19 Apr 2011 14:30:37 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<item>
		<title>By: AS3 Binding without the Flex Framework &#124; pv3d.org</title>
		<link>http://xtyler.com/code/177/comment-page-1#comment-12038</link>
		<dc:creator>AS3 Binding without the Flex Framework &#124; pv3d.org</dc:creator>
		<pubDate>Tue, 09 Nov 2010 22:30:58 +0000</pubDate>
		<guid isPermaLink="false">http://www.xtyler.com/?p=177#comment-12038</guid>
		<description>[...] You can read more details about this custom binding here: http://www.xtyler.com/code/177 [...]</description>
		<content:encoded><![CDATA[<p>[...] You can read more details about this custom binding here: <a href="http://www.xtyler.com/code/177" rel="nofollow">http://www.xtyler.com/code/177</a> [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: AS3 Binding without the Flex Framework &#124; johnlindquist.com</title>
		<link>http://xtyler.com/code/177/comment-page-1#comment-11990</link>
		<dc:creator>AS3 Binding without the Flex Framework &#124; johnlindquist.com</dc:creator>
		<pubDate>Mon, 24 May 2010 21:32:25 +0000</pubDate>
		<guid isPermaLink="false">http://www.xtyler.com/?p=177#comment-11990</guid>
		<description>[...] You can read more details about this custom binding here: http://www.xtyler.com/code/177 [...]</description>
		<content:encoded><![CDATA[<p>[...] You can read more details about this custom binding here: <a href="http://www.xtyler.com/code/177" rel="nofollow">http://www.xtyler.com/code/177</a> [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Fyodor</title>
		<link>http://xtyler.com/code/177/comment-page-1#comment-11989</link>
		<dc:creator>Fyodor</dc:creator>
		<pubDate>Wed, 05 May 2010 15:15:46 +0000</pubDate>
		<guid isPermaLink="false">http://www.xtyler.com/?p=177#comment-11989</guid>
		<description>Does it work with dynamic objects like ObjectProxy? I&#039;m using it as a Map or associative array.

I&#039;m binding to an ObjectProxy field and it only works if the proxy already contains the field at the moment the binding is created. 

I&#039;m using Flight 1.0 RC.</description>
		<content:encoded><![CDATA[<p>Does it work with dynamic objects like ObjectProxy? I&#8217;m using it as a Map or associative array.</p>
<p>I&#8217;m binding to an ObjectProxy field and it only works if the proxy already contains the field at the moment the binding is created. </p>
<p>I&#8217;m using Flight 1.0 RC.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: xtyler</title>
		<link>http://xtyler.com/code/177/comment-page-1#comment-11988</link>
		<dc:creator>xtyler</dc:creator>
		<pubDate>Fri, 30 Apr 2010 20:37:26 +0000</pubDate>
		<guid isPermaLink="false">http://www.xtyler.com/?p=177#comment-11988</guid>
		<description>This is a compiler error, if you rename the &#039;metadata&#039; local property to &#039;meta&#039; for example it will work great once again.</description>
		<content:encoded><![CDATA[<p>This is a compiler error, if you rename the &#8216;metadata&#8217; local property to &#8216;meta&#8217; for example it will work great once again.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: p48l0</title>
		<link>http://xtyler.com/code/177/comment-page-1#comment-11987</link>
		<dc:creator>p48l0</dc:creator>
		<pubDate>Fri, 30 Apr 2010 17:28:42 +0000</pubDate>
		<guid isPermaLink="false">http://www.xtyler.com/?p=177#comment-11987</guid>
		<description>Found the error / bug ? mabe i have a bad setup or something, this line dosen´t work:

propertyCache[metadata][value] = propertyCache[value].(child(&quot;metadata&quot;).(@name == metadata).length() &gt; 0);

but this one does:

propertyCache[metadata][value] = propertyCache[value].(child(&quot;metadata&quot;).(@name == &quot;Bindable&quot;).length() &gt; 0);

this is from source code: flight.utils.Type

Someone knows why is this?</description>
		<content:encoded><![CDATA[<p>Found the error / bug ? mabe i have a bad setup or something, this line dosen´t work:</p>
<p>propertyCache[metadata][value] = propertyCache[value].(child(&#8220;metadata&#8221;).(@name == metadata).length() &gt; 0);</p>
<p>but this one does:</p>
<p>propertyCache[metadata][value] = propertyCache[value].(child(&#8220;metadata&#8221;).(@name == &#8220;Bindable&#8221;).length() &gt; 0);</p>
<p>this is from source code: flight.utils.Type</p>
<p>Someone knows why is this?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: xtyler</title>
		<link>http://xtyler.com/code/177/comment-page-1#comment-11843</link>
		<dc:creator>xtyler</dc:creator>
		<pubDate>Wed, 26 Aug 2009 15:31:58 +0000</pubDate>
		<guid isPermaLink="false">http://www.xtyler.com/?p=177#comment-11843</guid>
		<description>Quote from cited article:

&quot;so it looks like just adding that conditional statement to check for the event listener is kind of expensive.  But it&#039;s only a 2x performance hit instead of ~7-8x for dispatching an unnecessary event...&quot;

&lt;em&gt;Most&lt;/em&gt; events go unlistened to, considering all the property changes and other events on all DisplayObjects and EventDispatcher&#039;s in the system. This check saves significantly in overall performance of any system, while its minimal cost goes unnoticed.</description>
		<content:encoded><![CDATA[<p>Quote from cited article:</p>
<p>&#8220;so it looks like just adding that conditional statement to check for the event listener is kind of expensive.  But it&#8217;s only a 2x performance hit instead of ~7-8x for dispatching an unnecessary event&#8230;&#8221;</p>
<p><em>Most</em> events go unlistened to, considering all the property changes and other events on all DisplayObjects and EventDispatcher&#8217;s in the system. This check saves significantly in overall performance of any system, while its minimal cost goes unnoticed.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: viatropos</title>
		<link>http://xtyler.com/code/177/comment-page-1#comment-11842</link>
		<dc:creator>viatropos</dc:creator>
		<pubDate>Wed, 26 Aug 2009 06:18:05 +0000</pubDate>
		<guid isPermaLink="false">http://www.xtyler.com/?p=177#comment-11842</guid>
		<description>Here&#039;s some stats on the performance increases of just adding that &quot;hasEventListener&quot; business.

http://forums.adobe.com/message/2204490#2204490

Cheers,
Lance</description>
		<content:encoded><![CDATA[<p>Here&#8217;s some stats on the performance increases of just adding that &#8220;hasEventListener&#8221; business.</p>
<p><a href="http://forums.adobe.com/message/2204490#2204490" rel="nofollow">http://forums.adobe.com/message/2204490#2204490</a></p>
<p>Cheers,<br />
Lance</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: xtyler</title>
		<link>http://xtyler.com/code/177/comment-page-1#comment-11841</link>
		<dc:creator>xtyler</dc:creator>
		<pubDate>Mon, 24 Aug 2009 15:19:18 +0000</pubDate>
		<guid isPermaLink="false">http://www.xtyler.com/?p=177#comment-11841</guid>
		<description>Current Flight binding &lt;em&gt;does not&lt;/em&gt; have a &quot;suspend binding&quot; feature. &lt;em&gt;But&lt;/em&gt; if nothing is bound to a property then the &lt;code&gt;propertyChange&lt;/code&gt; event is never created and dispatched. This is one of the best system-wide improvements over Adobe&#039;s binding, where instantiating a new object, the event, and then dispatching can add up.

Recently I&#039;ve been interested in revisiting the binding solution with a completely new method of updating bindings outside of the event flow. This means that any object could be bindable, not just IEventDispatchers, and it would also mean further speed improvements. The only downside to a new solution like this is that it wouldn&#039;t be compatible with Flex at all, where the current binding is seamless.

Overall I &lt;em&gt;think&lt;/em&gt; tweening performance issues stem from the Flex invalidation cycle. Binding in Flex isn&#039;t slow enough to be noticeable unless you&#039;re doing many thousands of property changes in the same thread. Of course that is only taking the binding system into account, not any of the Flex code that responds to some of these property changes.</description>
		<content:encoded><![CDATA[<p>Current Flight binding <em>does not</em> have a &#8220;suspend binding&#8221; feature. <em>But</em> if nothing is bound to a property then the <code>propertyChange</code> event is never created and dispatched. This is one of the best system-wide improvements over Adobe&#8217;s binding, where instantiating a new object, the event, and then dispatching can add up.</p>
<p>Recently I&#8217;ve been interested in revisiting the binding solution with a completely new method of updating bindings outside of the event flow. This means that any object could be bindable, not just IEventDispatchers, and it would also mean further speed improvements. The only downside to a new solution like this is that it wouldn&#8217;t be compatible with Flex at all, where the current binding is seamless.</p>
<p>Overall I <em>think</em> tweening performance issues stem from the Flex invalidation cycle. Binding in Flex isn&#8217;t slow enough to be noticeable unless you&#8217;re doing many thousands of property changes in the same thread. Of course that is only taking the binding system into account, not any of the Flex code that responds to some of these property changes.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: viatropos</title>
		<link>http://xtyler.com/code/177/comment-page-1#comment-11840</link>
		<dc:creator>viatropos</dc:creator>
		<pubDate>Mon, 24 Aug 2009 04:40:50 +0000</pubDate>
		<guid isPermaLink="false">http://www.xtyler.com/?p=177#comment-11840</guid>
		<description>One more thing: Binding and Tweening.  Animations run in Flash/pure Actionscript are MUCH faster/smoother than the SAME animations run in Flex.  This is presumably from both Binding and invalidation calls.

For example, if you tween &quot;alpha&quot;, &quot;x&quot;, and &quot;y&quot; of a 500x500 Panel for 1 second, that can dispatch 50+ events, plus make a billion invalidation calls.  If you do &quot;setActualSize&quot; for resizing (which they recommend), that&#039;s another 3 events, so you can have in a single tween: &#039;alphaChanged&#039;, &#039;xChanged&#039;, &#039;yChanged&#039;, &#039;widthChanged&#039;, &#039;heightChanged&#039;, &#039;resize&#039;... every frame!  On most computers other than the newest newest, or the ones we soup up, they chop through 2-4 frames of the animation.  Terrible.  I think it&#039;s from all the binding going on which you don&#039;t need.

Question is, is Flight ready to handle that problem?  It seems like it just about is, if you could put in there a &quot;suspendBinding&quot; method that we could set when running our effects and tweens, that would suspend binding events temporarily.  That way I can run animations with zero binding events (when I don&#039;t want them, which is almost always), and zero invalidation calls (some of the time).

Any thoughts?
Lance</description>
		<content:encoded><![CDATA[<p>One more thing: Binding and Tweening.  Animations run in Flash/pure Actionscript are MUCH faster/smoother than the SAME animations run in Flex.  This is presumably from both Binding and invalidation calls.</p>
<p>For example, if you tween &#8220;alpha&#8221;, &#8220;x&#8221;, and &#8220;y&#8221; of a 500&#215;500 Panel for 1 second, that can dispatch 50+ events, plus make a billion invalidation calls.  If you do &#8220;setActualSize&#8221; for resizing (which they recommend), that&#8217;s another 3 events, so you can have in a single tween: &#8216;alphaChanged&#8217;, &#8216;xChanged&#8217;, &#8216;yChanged&#8217;, &#8216;widthChanged&#8217;, &#8216;heightChanged&#8217;, &#8216;resize&#8217;&#8230; every frame!  On most computers other than the newest newest, or the ones we soup up, they chop through 2-4 frames of the animation.  Terrible.  I think it&#8217;s from all the binding going on which you don&#8217;t need.</p>
<p>Question is, is Flight ready to handle that problem?  It seems like it just about is, if you could put in there a &#8220;suspendBinding&#8221; method that we could set when running our effects and tweens, that would suspend binding events temporarily.  That way I can run animations with zero binding events (when I don&#8217;t want them, which is almost always), and zero invalidation calls (some of the time).</p>
<p>Any thoughts?<br />
Lance</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: xtyler</title>
		<link>http://xtyler.com/code/177/comment-page-1#comment-11834</link>
		<dc:creator>xtyler</dc:creator>
		<pubDate>Tue, 21 Jul 2009 15:23:46 +0000</pubDate>
		<guid isPermaLink="false">http://www.xtyler.com/?p=177#comment-11834</guid>
		<description>There have been enough changes/improvements since this post that I&#039;ll write an update on this topic and provide some tests and statistics. I don&#039;t think you&#039;ll see a huge difference, especially over a trivial 1000 items. The Flex binding is still fast, coded on AS3, but it uses more memory and isn&#039;t weak-referenced (Garbage Collection Friendly). Both solutions are tied into the Event Dispatching system.</description>
		<content:encoded><![CDATA[<p>There have been enough changes/improvements since this post that I&#8217;ll write an update on this topic and provide some tests and statistics. I don&#8217;t think you&#8217;ll see a huge difference, especially over a trivial 1000 items. The Flex binding is still fast, coded on AS3, but it uses more memory and isn&#8217;t weak-referenced (Garbage Collection Friendly). Both solutions are tied into the Event Dispatching system.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

