<?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>Ghost23 Blog &#187; AS3 / Flex</title>
	<atom:link href="http://www.ghost23.de/category/flex-actionscript/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.ghost23.de</link>
	<description>A blog about Flash and stuff</description>
	<lastBuildDate>Fri, 11 Jun 2010 10:13:15 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>The &#8220;&#124;&#124;&#8221; operator and a chain of responsibility</title>
		<link>http://www.ghost23.de/2010/06/the-operator-and-a-chain-of-responsibility/</link>
		<comments>http://www.ghost23.de/2010/06/the-operator-and-a-chain-of-responsibility/#comments</comments>
		<pubDate>Sat, 05 Jun 2010 16:45:52 +0000</pubDate>
		<dc:creator>Sven Busse</dc:creator>
				<category><![CDATA[AS3 / Flex]]></category>
		<category><![CDATA[OOP]]></category>
		<category><![CDATA[Actionscript]]></category>
		<category><![CDATA[chain of responsibility]]></category>
		<category><![CDATA[code]]></category>

		<guid isPermaLink="false">http://www.ghost23.de/?p=326</guid>
		<description><![CDATA[Juten Tach, lately i came across the &#124;&#124; operator again and i read through the language specification. Little quiz: What is the content of the variable result in this line of code? var result:* = null &#124;&#124; "one" &#124;&#124; "two"; The answer is: &#8220;one&#8221;. As for me, i had forgotten, that the &#124;&#124; operator actually [...]]]></description>
			<content:encoded><![CDATA[<p>Juten Tach,</p>
<p>lately i came across the || operator again and i read through the language specification. Little quiz: What is the content of the variable <em>result</em> in this line of code?</p>
<pre>var result:* = null || "one" || "two";</pre>
<p>The answer is: &#8220;one&#8221;. As for me, i had forgotten, that the || operator actually returns the value, that evaluates to true. If both values evaluate to true it returns the one on the left first.</p>
<p>So i started to think about, how to make use of this and the Chain of Responsibility Pattern came to my mind. You remember this pattern, right? You have a list of classes, that have different capabilities and you have a task. Instead of finding out by yourself, which class to use, you simply pass it to a chain, where these classes are connected. Each class determines for itself, if it is responsible and the first one, that answers with yes, is returned and gets the job.</p>
<p>So here i present a little exemplary implementation of a Chain of Responsibility, that in its core makes use of the || operator. By the way, i am not really conforming to the original pattern, because i actually don&#8217;t like it. In the original pattern, the potentially responsible classes link to each other directly, which in my opinion causes some trouble. First, they have to be aware, that they are part of a chain, which i think, they shouldn&#8217;t and second, they define the order in the chain themselves, which i think they shouldn&#8217;t and third, the requesting class has to know, which one is the first class in the chain, which i think, it shouldn&#8217;t.</p>
<p><strong>[Caution]</strong>: This post now gets a bit lengthy <img src='http://www.ghost23.de/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>To build this Chain Of Responsibility thing, we need four ingredients: a chain, some potentially responsible classes, a request that should be processed and finally a using class, which wants the request to be processed.</p>
<p>We start with the request. For this example, it is really simple:</p>
<pre>package responsibility {
   public class Request {

      public var stuffToBeProcessed:*;
   }
}</pre>
<p>As you can see, there is just a variable, which holds some kind of value, with which we want to work with. I did not give it a type to make it more interesting at runtime. You will see later on.</p>
<p>OK, next we need some classes, which can handle this type of request. Therefore we define an interface, which describes this general ability.</p>
<pre>package responsibility {
   public interface Responsible {

      /**
       * Checks, if this class can handle the request.
       * @return An instance of Responsible or null.
       */
      function checkResponsibility(request:Request):Responsible;

      /**
       * Processes the request.
       */
      function doIt():void;
   }
}</pre>
<p>Pretty easy, right? The <em>checkResponsibility(request:Request)</em> method will either return itself, if it feels responsible for the request or <em>null</em>. The <em>doIt()</em> method then will actually do, whatever is to be done for fulfilling the request.</p>
<p>Next, we have two concrete classes, which implement this interface, ResponsibleOfStrings and ResponsibleOfNumbers:</p>
<pre>package responsibility {
   public class ResponsibleOfStrings implements Responsible {

      public function checkResponsibility(request:Request):Responsible {
         if(request.stuffToBeProcessed is String) {
            return this;
         }else return null;
      }

      public function doIt():void {
         trace("ResponsibleOfStrings is doing it!");
      }
   }
}

package responsibility {
   public class ResponsibleOfNumbers implements Responsible {

      public function checkResponsibility(request:Request):Responsible {
         if(request.stuffToBeProcessed is Number) {
            return this;
         }else return null;
      }

      public function doIt():void {
         trace("ResponsibleOfNumbers is doing it!");
      }
   }
}</pre>
<p>So, you can see, these classes simply check if the request holds a string or a number respectively. If they find what they expect, they return themselves, otherwise they return <em>null</em>.</p>
<p>OK, next we need a chain. Very well, here it is:</p>
<pre>package responsibility {
   public class ChainOfResponsibility {

      private var listOfResponsibleObjects:Vector. = new Vector.;

      public function addResponsibleObject(responsibleObject:Responsible):void {
         listOfResponsibleObjects.push(responsibleObject);
      }

      public function determineResponsibleObject(request:Request):Responsible {

         var result:Responsible = null;

         for(var i:int = 0; i &lt; listOfResponsibleObjects.length; i++) {
            result ||= listOfResponsibleObjects[i].checkResponsibility(request);
         }

         return result;
      }
   }
}</pre>
<p>So finally here comes the part with the || operator. We run a list of potentially responsible classes. And in the function <em>determineResponsibleObject(request:Request)</em>, we now go through this list. And here we make use of the fact, that when we chain the return values of each <em>checkResponsibility(request)</em> call by using the || operator, we get the first one, that returned itself instead of <em>null</em>. Means, we get the first class instance, which feels responsible for doing the job.</p>
<p>OK, lastly of course, we want to see, how to use that stuff. So here it is:</p>
<pre>package {

   import flash.display.Sprite;
   import responsibility.*;

   public class Main extends Sprite {

      public function Main() {

         var chainOfResponsibility:ChainOfResponsibility = new ChainOfResponsibility;
         chainOfResponsibility.addResponsibleObject(new ResponsibleOfNumbers);
         chainOfResponsibility.addResponsibleObject(new ResponsibleOfStrings);

         var request:Request = new Request;
         request.stuffToBeProcessed = 10;

         var responsibleObject:Responsible = chainOfResponsibility.determineResponsibleObject(request);
         responsibleObject.doIt();
      }
   }
}</pre>
<p>So, first we are setting up our Chain of Responsibility an give it our two responsible classes. Then we build a new request. In this case, we assign a number to the variable <em>stuffToBeProcessed</em>. Then we hand that request over to our chain and save the result in our variable <em>responsibleObject</em>. Finally we call the <em>doIt()</em> method on that object. And if we run this, we get a trace saying &#8220;ResponsibleOfNumbers is doing it!&#8221;, as expected. Of course, if we had assigned a string to the variable <em>stuffToBeProcessed</em>, than we would have seen &#8220;ResponsibleOfStrings is doing it!&#8221;.</p>
<p>Well, that&#8217;s it. If you find this useful, you can use it freely for any purpose.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ghost23.de/2010/06/the-operator-and-a-chain-of-responsibility/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>The &#8220;in&#8221; operator</title>
		<link>http://www.ghost23.de/2010/05/the-in-operator/</link>
		<comments>http://www.ghost23.de/2010/05/the-in-operator/#comments</comments>
		<pubDate>Mon, 24 May 2010 15:34:26 +0000</pubDate>
		<dc:creator>Sven Busse</dc:creator>
				<category><![CDATA[AS3 / Flex]]></category>
		<category><![CDATA[Actionscript]]></category>
		<category><![CDATA[code]]></category>

		<guid isPermaLink="false">http://www.ghost23.de/?p=315</guid>
		<description><![CDATA[Juten Tach, i work with Actionscript for some time now, but i wasn&#8217;t aware of that little thing. You can use &#8220;in&#8221; for checking, if an attribute/field exists in an object, like so: package { import flash.display.Sprite; public class Test extends Sprite { public function Test() { var myObject:Object = {name: "foo", nothing: "bar"}; trace("name" [...]]]></description>
			<content:encoded><![CDATA[<p>Juten Tach,</p>
<p>i work with Actionscript for some time now, but i wasn&#8217;t aware of that little thing. You can use &#8220;in&#8221; for checking, if an attribute/field exists in an object, like so:</p>
<pre>package {
   import flash.display.Sprite;

   public class Test extends Sprite {

      public function Test() {
         var myObject:Object = {name: "foo", nothing: "bar"};
         trace("name" in myObject);     // true
         trace("anything" in myObject); // false
      }
   }
}</pre>
<p>It also works for checking for fields in class instances. Might come in handy sometime <img src='http://www.ghost23.de/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.ghost23.de/2010/05/the-in-operator/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>AS3 &#8211; feature request filed &#8211; const initialization in constructor</title>
		<link>http://www.ghost23.de/2010/05/as3-feature-request-filed-const-initialization-in-constructor/</link>
		<comments>http://www.ghost23.de/2010/05/as3-feature-request-filed-const-initialization-in-constructor/#comments</comments>
		<pubDate>Sat, 15 May 2010 12:26:14 +0000</pubDate>
		<dc:creator>Sven Busse</dc:creator>
				<category><![CDATA[AS3 / Flex]]></category>
		<category><![CDATA[OOP]]></category>
		<category><![CDATA[Actionscript]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[compiler]]></category>

		<guid isPermaLink="false">http://www.ghost23.de/?p=308</guid>
		<description><![CDATA[Juten Tach, i already wrote about this a while ago, but now i have filed a feature request in the bug base of Adobe. I want const fields allow for being initialized in the constructor, too, not only inline. Here&#8217;s, what i wrote in the ticket: hello, in the AS3 specification it says: &#8220;A variable [...]]]></description>
			<content:encoded><![CDATA[<p>Juten Tach,</p>
<p>i already wrote <a href="http://www.ghost23.de/2009/03/constants/">about this</a> a while ago, but now i have filed a<a href="https://bugs.adobe.com/jira/browse/ASC-4077" target="_blank"> feature request</a> in the bug base of Adobe. I want const fields allow for being initialized in the constructor, too, not only inline. Here&#8217;s, what i wrote in the ticket:</p>
<blockquote><p>hello,</p>
<p>in the <a href="http://livedocs.adobe.com/specs/actionscript/3/as3_specification62.html),">AS3 specification</a> it says:<br />
&#8220;A variable declared with the const rather than the var keyword, is read-only outside of the variable&#8217;s intializer if it is not an instance variable and outside of the instance constructor if it is an instance variable. It is a verifier error to assign to a const variable outside of its writable region.&#8221;</p>
<p>This implies, that a const can be initialized in the constructor, but in fact, it cannot, when in strict mode.</p>
<p>In the past, there have been at least two bug reports around this, with slightly different outcome. An early report (<a title="intializing a const instance variable in the class constructor throws reference error" href="https://bugs.adobe.com/jira/browse/ASC-351"><span style="text-decoration: line-through;">ASC-351</span></a>) seemed to state, that it should be possible to initialize a const in the constructor. Unfortunately, from the report it is unclear, if strict mode was involved or not.</p>
<p>Another report later (<a title="Const initialized in constructor causing compiler error" href="https://bugs.adobe.com/jira/browse/ASC-3562"><span style="text-decoration: line-through;">ASC-3562</span></a>) stated, that it would only be possible without strict mode.</p>
<p>I do think, that const initialization should be possible in the constructor, like the AS3 specification suggests, even in strict mode. It would make the whole const concept more useful. For example, declaring a const in a superclass and giving it a value inline currently means, that in subclasses you cannot give it a different value, because you cannot re-declare the field and you cannot give it a different value in the constructor.</p>
<p>Also, you might want to do some checks to decide which value to assign to the const, which you could do in the constructor based on parameters or other factors.</p>
<p>From my point of view, adding the ability to initialize a const in the constructor in addition to do it inline as currently possible, will not break any existing code, since it just adds new functionality, but does not change or take away existing functionality (besides not throwing a compile time error anymore).</p></blockquote>
<p>So, what do you think? Do you agree? If yes, please <a href="https://bugs.adobe.com/jira/browse/ASC-4077" target="_blank">vote for the feature request</a> in the bug base. Otherwise, i still would be interested to read your opinion, of course <img src='http://www.ghost23.de/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.ghost23.de/2010/05/as3-feature-request-filed-const-initialization-in-constructor/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Another singleton</title>
		<link>http://www.ghost23.de/2010/05/another-singleton/</link>
		<comments>http://www.ghost23.de/2010/05/another-singleton/#comments</comments>
		<pubDate>Sun, 02 May 2010 08:41:47 +0000</pubDate>
		<dc:creator>Sven Busse</dc:creator>
				<category><![CDATA[AS3 / Flex]]></category>
		<category><![CDATA[Flash in general]]></category>
		<category><![CDATA[Actionscript]]></category>
		<category><![CDATA[singleton]]></category>

		<guid isPermaLink="false">http://www.ghost23.de/?p=304</guid>
		<description><![CDATA[Juten Tach, i know, everybody hates Singletons, and i do, too. But i find it an entertaining exercise to come up with new ways of circumventing the lack of private constructors for Singletons. Today this new one came to my mind: First, we define an Interface, which specifies, how our Singleton should look like: IMySingelton.as: [...]]]></description>
			<content:encoded><![CDATA[<p>Juten Tach,</p>
<p>i know, everybody hates Singletons, and i do, too. But i find it an entertaining exercise to come up with new ways of circumventing the lack of private constructors for Singletons. Today this new one came to my mind:</p>
<p>First, we define an Interface, which specifies, how our Singleton should look like:</p>
<p>IMySingelton.as:</p>
<pre>package {
	public interface IMySingleton {
		function doodle(something:String):void;
	}
}</pre>
<p>Ok, next we define our Singleton.</p>
<p>myInstance.as:</p>
<pre>package {
	public var myInstance:IMySingleton = new MySingleton();
}

class MySingleton implements IMySingleton {
	public function MySingleton() {
		trace("MySingleton is now there!");
	}
	public function doodle(something:String):void {
		trace("yippee: " + something);
	}
}</pre>
<p>Very simple, isn&#8217;t it? We could optionally also go without the Interface, but then we loose code completion in our editors, because the class MySingleton will be ignored by most editors, although it would compile and run just fine. I do agree, that this is not really exactly the idea of a Singleton, because it has no getInstance() method, but in the end, the result is the same, we only have one global instance of MySingleton.</p>
<p>And since the variable is already global, we don&#8217;t even have to declare it in our class, we can directly use it:</p>
<p>Main.as:</p>
<pre>package {
	import flash.display.Sprite;

	public class Main extends Sprite {
		public function Main() {
			myInstance.doodle("loodle");
		}
	}
}</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.ghost23.de/2010/05/another-singleton/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>abc file format specification &#8211; as a diagram</title>
		<link>http://www.ghost23.de/2010/04/abc-file-format-specification-as-a-diagram/</link>
		<comments>http://www.ghost23.de/2010/04/abc-file-format-specification-as-a-diagram/#comments</comments>
		<pubDate>Mon, 05 Apr 2010 16:17:27 +0000</pubDate>
		<dc:creator>Sven Busse</dc:creator>
				<category><![CDATA[AS3 / Flex]]></category>
		<category><![CDATA[OOP]]></category>
		<category><![CDATA[abc]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[diagram]]></category>

		<guid isPermaLink="false">http://www.ghost23.de/?p=278</guid>
		<description><![CDATA[Juten Tach, after all this thinking about not saving code as text anymore but in an object structure, i thought it might be worthwhile to understand a bit more about how ActionScript is built and what the elements are. What else to do but to dive into the specifications of ActionScript and the AVM2. Specifically i was [...]]]></description>
			<content:encoded><![CDATA[<p>Juten Tach,</p>
<p>after all this thinking about not <a href="http://www.ghost23.de/2010/03/abstract-source-code-representation/">saving code as text anymore</a> but in an object structure, i thought it might be worthwhile to understand a bit more about how ActionScript is built and what the elements are. What else to do but to dive into the specifications of ActionScript and the AVM2. Specifically i was interested in the abc file format, nicely described in the PDF from Adobe: &#8220;<a href="http://www.adobe.com/devnet/actionscript/articles/avm2overview.pdf" target="_blank">ActionScript Virtual Machine 2 (AVM2) Overview</a>&#8220;.</p>
<p>Only problem was, it&#8217;s a lot of text and i usually can understand things better, if i see them visually. So i thought, it might be a good idea to make a diagram out of the textual description. So here it goes. I used Enterprise Architect to draw this, a very nice UML editor, by the way.</p>
<p><a href="http://www.ghost23.de/wp-content/uploads/ABCStructure.pdf"><img class="alignnone size-medium wp-image-279" title="abc file format specification diagram" src="http://www.ghost23.de/wp-content/uploads/abc-file-format_diagram-300x219.gif" alt="The abc file format specification diagram" width="300" height="219" /></a></p>
<p><strong>[Update]:</strong> I changed the format to PDF for better reading and printing.</p>
<p>I admit, there are still quite a lot of lines cutting across each other and making the whole thing still a bit hard to overlook, but hey, it&#8217;s a first version.</p>
<p>Perhaps this might come in handy for you, too, so i am posting this. Should you find mistakes in the diagram, a comment would be appreciated.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ghost23.de/2010/04/abc-file-format-specification-as-a-diagram/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The error problem in AS3</title>
		<link>http://www.ghost23.de/2009/11/the-error-problem-in-as3/</link>
		<comments>http://www.ghost23.de/2009/11/the-error-problem-in-as3/#comments</comments>
		<pubDate>Sun, 08 Nov 2009 19:46:59 +0000</pubDate>
		<dc:creator>Sven Busse</dc:creator>
				<category><![CDATA[AS3 / Flex]]></category>
		<category><![CDATA[OOP]]></category>
		<category><![CDATA[Actionscript]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[error]]></category>

		<guid isPermaLink="false">http://www.ghost23.de/blog/?p=235</guid>
		<description><![CDATA[Juten Tach, this post was inspired by a topic, i am interested a bit lately, &#8220;Functional Programming&#8221;. There is a very informative series of videos over on channel9, that covers functional programming, moderated by Erik Meijer from Microsoft Research. I have not yet made it through every bit of the topic, but one thing, that has already [...]]]></description>
			<content:encoded><![CDATA[<p>Juten Tach,</p>
<p>this post was inspired by a topic, i am interested a bit lately, &#8220;Functional Programming&#8221;. There is a very informative<a href="http://channel9.msdn.com/tags/C9+Lectures/" target="_blank"> series of videos</a> over on channel9, that covers functional programming, moderated by Erik Meijer from Microsoft Research. I have not yet made it through every bit of the topic, but one thing, that has already made a big impression on me is the statement, that functional programming emphasizes honesty of code. So what does that mean?</p>
<p>Honesty means, that a developer wanting to use a method for example, exactly knows, what to expect from it. In some sense, ActionScript has some limited honesty. Let&#8217;s take this method for example:</p>
<pre>var names:Vector.&lt;String&gt;;

function getName(id:int):String {
   return names[id];
}</pre>
<p>It seems to be honest about, what it returns, a String (we will see, it isn&#8217;t really honest about that). But it isn&#8217;t honest about what String. We could call this method three times with the same value for &#8216;id&#8217;, but we could not be sure, that we allways get the same result back, because the return value depends on the stuff, that is in the &#8216;names&#8217; Vector. This is called side effect. Functional programming tries to avoid side effects where possible. The aim is, whenever i give a specific value to a method, i should get back the same result. So the method is not only honest about the type of value, but also about the value itself.</p>
<p>OK, so far, so good. So what&#8217;s that to do with errors in ActionScript? Let&#8217;s look at the method again from above. If you try to use a Vector with an index out of the bounds of the Vector, you get a RangeError. By the way, i was astonished to recognize, that trying to do that with an Array simply returns null, while Vector throws an error. I find that to be a bit inconsistent. Anyway, what that means is, that our method getName()  could potentially throw an error instead of returning a String, as it declares. This might sound trivial, but i find it to be absolutely non-trivial. Strict typing means, that i as a programmer can expect, that if the method says, it returns a String, it will do so. But now we find, that it might not. getName() might not return anything, if an error occurs. Now you might reply &#8220;well, simply catch the error, and you&#8217;re good&#8221;. But how am i to know, that i have to? If i am responsible for the whole code base, i might know, that this method can throw an error, but what if the method is provided by some third-party library?</p>
<p>So this means, that ActionScript is not completely honest about return types, because we can only hope, that a method returns, what it says, but it might as well do nothing. Java tries to circumvent this problem with the &#8216;throws&#8217; clause. A method can define, that it either returns what it returns, or that it might throw an exception of a certain type. The point here is, the Java compiler will not compile a method, if it finds, that the code in that method might throw an exception, but that the method has not either catched it or declared via the &#8216;throws&#8217; clause, that the exception might occur (there are exceptions to this rule, but let&#8217;s just forget about these for a moment).</p>
<p>We don&#8217;t have that in ActionScript. In ActionScript, any method could potentially throw an error (not to speak of error events, which enlarges the problem even more) and we simply have no chance of knowing which method might throw which error. In the light of these thoughts it comes to no surprise, that the new flash player now supports global error handling, which for me feels like fixing a sympton rather than the cause. Catching errors globally is just another way of saying: &#8220;I have no idea, where all these errors come from, so let me simply catch them all in one place.&#8221;</p>
<p>To end up with, i want to repeat, that Array simply returns null, when trying to use it with an index out of the bounds of the Array. So it does not throw an error like Vector does. Looking at it from a functional-programming-point-of-view, this is more honest, than what the Vector does. If i would have made my example with an Array, getName() would allways return a String (well, not really, but null can be implicitly converted to a String by the runtime, so &#8230; it&#8217;s OK). That means, that the programm does not break and the contract is valid, the method is more honest. Of course, now you might have to deal with checking for null, as <a href="http://jessewarden.com/2007/11/your-mom-is-null-throws-exception-ot-ot-ot-or-learning-exception-handling-in-actionscript.html" target="_blank">Jesse Warden complaint about already</a>. A solution to this problem could be to return a default value instead of null. Of course, this will not work in all situations.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ghost23.de/2009/11/the-error-problem-in-as3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Next FlexUserGroup HH Meeting hosted by Interone</title>
		<link>http://www.ghost23.de/2009/09/next-flexusergroup-hh-meeting-hosted-by-interone/</link>
		<comments>http://www.ghost23.de/2009/09/next-flexusergroup-hh-meeting-hosted-by-interone/#comments</comments>
		<pubDate>Mon, 14 Sep 2009 10:37:12 +0000</pubDate>
		<dc:creator>Sven Busse</dc:creator>
				<category><![CDATA[AS3 / Flex]]></category>
		<category><![CDATA[Stuff]]></category>
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.ghost23.de/blog/?p=217</guid>
		<description><![CDATA[Juten Tach, once again Interone Worldwide is hosting the upcoming Flex UserGroup Meeting in Hamburg. http://www.flexughh.de/2009/09/04/flexughh-meeting-16-09-09-sven-busse-flash-engineering-agile-ansatze-zum-bau-von-rias-mit-flash-flex-und-actionscript/ And as if it was on purpose, i will be talking there, about my book &#8220;Flash Engineering&#8221; and everything about software engineering, you would like to discuss. So, if you have something specific on your mind, go ahead and [...]]]></description>
			<content:encoded><![CDATA[<p>Juten Tach,</p>
<p>once again Interone Worldwide is hosting the upcoming Flex UserGroup Meeting in Hamburg.</p>
<p><a href="http://www.flexughh.de/2009/09/04/flexughh-meeting-16-09-09-sven-busse-flash-engineering-agile-ansatze-zum-bau-von-rias-mit-flash-flex-und-actionscript/" target="_blank">http://www.flexughh.de/2009/09/04/flexughh-meeting-16-09-09-sven-busse-flash-engineering-agile-ansatze-zum-bau-von-rias-mit-flash-flex-und-actionscript/</a></p>
<p>And as if it was on purpose, i will be talking there, about my book &#8220;<a href="http://www.amazon.de/gp/product/3827327830?ie=UTF8&amp;tag=ghost23blog-21&amp;linkCode=as2&amp;camp=1638&amp;creative=6742&amp;creativeASIN=3827327830">Flash Engineering</a><img style="border:none !important; margin:0px !important;" src="http://www.assoc-amazon.de/e/ir?t=ghost23blog-21&amp;l=as2&amp;o=3&amp;a=3827327830" border="0" alt="" width="1" height="1" />&#8221; and everything about software engineering, you would like to discuss. So, if you have something specific on your mind, go ahead and comment below, i&#8217;ll try to address it.</p>
<p>Hope to see you all there on Wednesday, starting at 19.30.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ghost23.de/2009/09/next-flexusergroup-hh-meeting-hosted-by-interone/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>My upcoming book &#8211; current status</title>
		<link>http://www.ghost23.de/2009/06/my-upcoming-book-current-status/</link>
		<comments>http://www.ghost23.de/2009/06/my-upcoming-book-current-status/#comments</comments>
		<pubDate>Sat, 13 Jun 2009 10:03:46 +0000</pubDate>
		<dc:creator>Sven Busse</dc:creator>
				<category><![CDATA[AS3 / Flex]]></category>
		<category><![CDATA[Flash in general]]></category>
		<category><![CDATA[Stuff]]></category>
		<category><![CDATA[AS3]]></category>
		<category><![CDATA[book]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[software engineering]]></category>

		<guid isPermaLink="false">http://www.ghost23.de/blog/?p=102</guid>
		<description><![CDATA[Juten Tach, it&#8217;s been quiet here, lately. I was working hard on my upcoming book Flash Engineering (it&#8217;s in german, sorry for the english speaking people). Now i&#8217;m almost done. The script is currently in the editorial office and being checked. Can&#8217;t wait to see it in reality. By the way, you can already pre-order [...]]]></description>
			<content:encoded><![CDATA[<p>Juten Tach,</p>
<p>it&#8217;s been quiet here, lately. I was working hard on my upcoming book <a href="http://www.amazon.de/gp/product/3827327830?ie=UTF8&#038;tag=ghost23blog-21&#038;linkCode=as2&#038;camp=1638&#038;creative=6742&#038;creativeASIN=3827327830">Flash Engineering</a><img src="http://www.assoc-amazon.de/e/ir?t=ghost23blog-21&#038;l=as2&#038;o=3&#038;a=3827327830" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /> (it&#8217;s in german, sorry for the english speaking people). Now i&#8217;m almost done. The script is currently in the editorial office and being checked. Can&#8217;t wait to see it in reality. By the way, you can already pre-order it:</p>
<div style="text-align:center"><iframe src="http://rcm-de.amazon.de/e/cm?t=ghost23blog-21&#038;o=3&#038;p=8&#038;l=as1&#038;asins=3827327830&#038;fc1=000000&#038;IS2=1&#038;lt1=_blank&#038;m=amazon&#038;lc1=6699CC&#038;bc1=FFFFFF&#038;bg1=FFFFFF&#038;f=ifr&#038;nou=1" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe></div>
]]></content:encoded>
			<wfw:commentRss>http://www.ghost23.de/2009/06/my-upcoming-book-current-status/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Constants</title>
		<link>http://www.ghost23.de/2009/03/constants/</link>
		<comments>http://www.ghost23.de/2009/03/constants/#comments</comments>
		<pubDate>Mon, 30 Mar 2009 16:04:24 +0000</pubDate>
		<dc:creator>Sven Busse</dc:creator>
				<category><![CDATA[AS3 / Flex]]></category>
		<category><![CDATA[Actionscript]]></category>
		<category><![CDATA[const]]></category>
		<category><![CDATA[constants]]></category>
		<category><![CDATA[livedocs]]></category>

		<guid isPermaLink="false">http://www.ghost23.de/blog/?p=101</guid>
		<description><![CDATA[Juten Tach, in the Adobe Livedocs, the description for the keyword const says: &#8220;Specifies a constant, which is a variable that can be assigned a value only once.&#8221; So why then does that not work: const mySomething:String; mySomething = "Test"; Grrrr &#8230;.]]></description>
			<content:encoded><![CDATA[<p>Juten Tach,<br />
in the Adobe Livedocs, the description for the keyword <em>const</em> says:<br />
<em>&#8220;Specifies a constant, which is a variable that can be assigned a value only once.&#8221;</em><br />
So why then does that not work:</p>
<pre>const mySomething:String;
mySomething = "Test";</pre>
<p>Grrrr &#8230;.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ghost23.de/2009/03/constants/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Private classes</title>
		<link>http://www.ghost23.de/2009/03/private-classes/</link>
		<comments>http://www.ghost23.de/2009/03/private-classes/#comments</comments>
		<pubDate>Sun, 29 Mar 2009 15:55:27 +0000</pubDate>
		<dc:creator>Sven Busse</dc:creator>
				<category><![CDATA[AS3 / Flex]]></category>
		<category><![CDATA[Actionscript]]></category>
		<category><![CDATA[class]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[private]]></category>

		<guid isPermaLink="false">http://www.ghost23.de/blog/?p=100</guid>
		<description><![CDATA[My doubts about private (invisible) classes in Actionscript are gone. The flex framework uses them as well.
]]></description>
			<content:encoded><![CDATA[<p>Juten Tach,<br />
in my previous post, i talked about singletons and private (invisible) classes. You know, these classes, that you put in the class file of a regular class, but outside of the package declaration, so that they are only visible to the regular class in that file.</p>
<p>I was a bit unsure, if this is a regularly supported feature. Today i looked through the sources of the flex framework in order to learn more about Arrays and ArrayCollections. And there, in the class ListCollectionView, i found two private classes residing beside the original ListCollectionView: ListCollectionViewCursor and ListCollectionViewBookmark. So, that&#8217;s good enough for me. Doubts are gone, i will start making use of them.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ghost23.de/2009/03/private-classes/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
