<?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>Engin YöyenEngin Yöyen | Engin Yöyen</title>
	<atom:link href="http://enginyoyen.com/blog/eng/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://enginyoyen.com/blog/eng</link>
	<description></description>
	<lastBuildDate>Tue, 05 Apr 2011 18:36:21 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>BlazeDS Memory Leak</title>
		<link>http://enginyoyen.com/blog/eng/?p=236&#038;utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=blazeds-memory-leak</link>
		<comments>http://enginyoyen.com/blog/eng/?p=236#comments</comments>
		<pubDate>Thu, 25 Nov 2010 06:33:51 +0000</pubDate>
		<dc:creator>Engin Yöyen</dc:creator>
				<category><![CDATA[Flash Platform]]></category>

		<guid isPermaLink="false">http://enginyoyen.com/blog/eng/?p=236</guid>
		<description><![CDATA[BlazeDS has a good structure and reliable system if you can make it work once. Programming and using it is also pretty simple, you can download and use the BlazeDS with tomcat just in few minutes. Of course if you have not read the complete documentation there is a really high chance that you have a memory leak in your server in case if you are using Messaging Service. This is not a bug in BlazeDS, so before you blame how bad it is, you should read the documentation. So you are using Messaging Service and day by day Java in your server using more memory and eventually your server crash and you get heap error message from java. Issue is because HTTP is a stateless(does not keep a persistent state between transactions) protocol and when a client is no longer using Flex/AIR application server assume that client still there and keep saving the asynchronous messages for client. Because every time client connect server there is a high chance of new session and therefore when client is no longer using the application server still saves messages for client. As those messages been kept in java memory and not marked for [...]]]></description>
			<content:encoded><![CDATA[<p>BlazeDS has a good structure and reliable system if you can make it work once. Programming and using it is also pretty simple, you can download and use the BlazeDS with tomcat just in few minutes. Of course if you have not read the complete documentation there is a really high chance that you have a memory leak in your server in case if you are using Messaging Service. This is not a bug in BlazeDS, so before you blame how bad it is, you should read the documentation.</p>
<p>So you are using Messaging Service and day by day Java in your server using more memory and eventually your server crash and you get heap error message from java. Issue is because HTTP is a stateless(does not keep a persistent state between transactions) protocol and when a client is no longer using Flex/AIR application server assume that client still there and keep saving the asynchronous messages for client. Because every time client connect server there is a high chance of new session and therefore when client is no longer using the application server still saves messages for client. As those messages been kept in java memory and not marked for garbage collection, eventually Java runs out of memory.</p>
<p><span id="more-236"></span>How to solve this problem; problem have to be solved in couple of different aspect but to ensure the safety of the system I suggest you apply all. First of all you have to detect if user is closing the application and if is you have to invoke the;<br />
[as3]<br />
disconnectAll()<br />
[/as3]<br />
method from <strong>ChannelSet</strong> object.</p>
<p>With this you notify server so server that client is no longer going to use the messages therefore is not required to save messages for this client.<br />
For AIR you can detect when application is closing by listening <strong>Event.EXITING</strong> event. Then you can trigger <strong>disconnectAll()</strong> method to disconnect client from server. For browser applications is little bit more tricky, possible solution is to listen when browser is closing such as listening <strong>window.onbeforeunload</strong> event and then triggering Flex application via ExternalInterface API, so flex client can disconnect from server.</p>
<p>But what if user computer shutdowns or user lost internet connection? Well in this case because it is out of control and you can’t really invoke any method because you can’t detect it and therefore session will remain in server. But what you can do is, you can set the session time out in your server therefore when user is disconnected without any notification, if session is no longer valid server won’t keep messages. To set session time out, you can add the following code in your server (<em><strong></strong></em><strong>WebINF/web.xml</strong>), which sets the session time out for 10 minutes. You have to add the code after  tags if there are any.</p>
<p>[xml]<br />
&lt;session-config&gt;<br />
&lt;session-timeout&gt;10&lt;/session-timeout&gt;<br />
&lt;/session-config&gt;<br />
[/xml]<br />
This will solve the complete memory issue that you have if you have any.<br />
Take Care<br />
<strong>Engin.</strong></p>
<p><strong>Additional sources-Session life cycle</strong><br />
<a href="http://livedocs.adobe.com/blazeds/1/blazeds_devguide/help.html?content=lcconnections_4.html" target="_blank">http://livedocs.adobe.com/blazeds/1/blazeds_devguide/help.html?content=lcconnections_4.html</a></p>
<p>Image credit: <a href="http://www.flickr.com/photos/snapeverything/3215605634/" target="_blank">Axel Bührmann</a></p>
]]></content:encoded>
			<wfw:commentRss>http://enginyoyen.com/blog/eng/?feed=rss2&#038;p=236</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>ActionScript Code Analyzer</title>
		<link>http://enginyoyen.com/blog/eng/?p=217&#038;utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=actionscript-code-analyzer</link>
		<comments>http://enginyoyen.com/blog/eng/?p=217#comments</comments>
		<pubDate>Tue, 09 Feb 2010 22:03:55 +0000</pubDate>
		<dc:creator>Engin Yöyen</dc:creator>
				<category><![CDATA[Flash Platform]]></category>

		<guid isPermaLink="false">http://enginyoyen.com/blog/eng/?p=217</guid>
		<description><![CDATA[I was making a simple experiment about analyzing code and creating view that show linked classes and used functions, it was just experiment, nothing too big. At the end I have made a small application that analyze ActionScript code which give some information about the code has been written. Application analysis the selected folder and create a simple code metrics, which shows the number of code line in files, blank lines, comments, number of functions, and so on. You can analyze your whole Flex Project or simply some of the classes that you wrote. The idea of detecting number of the lines is to predict the amount of effort that will be required to similar projects or libraries. Of course, this cannot be used to estimate the productivity of the developer. Every programmer thinks different and experienced developer may give same functionality with less code than new programmer. So that is the main reason that it cannot be used for productivity. On the other hand application shows detailed information about comments, which can help you to locate the files that you have less commented, or not commented at all, so you can return back add comment for future usage. Here [...]]]></description>
			<content:encoded><![CDATA[<p>I was making a simple experiment about analyzing code and creating view that show linked classes and used functions, it was just experiment, nothing too big. At the end I have made a small application that analyze ActionScript code which give some information about the code has been written.</p>
<p>Application analysis the selected folder and create a simple code metrics, which shows the number of code line in files, blank lines, comments, number of functions, and so on. You can analyze your whole Flex Project or simply some of the classes that you wrote. The idea of detecting number of the lines is to predict the amount of effort that will be required to similar projects or libraries. Of course, this cannot be used to estimate the productivity of the developer. Every programmer thinks different and experienced developer may give same functionality with less code than new programmer. So that is the main reason that it cannot be used for productivity.<br />
<span id="more-217"></span><br />
On the other hand application shows detailed information about comments, which can help you to locate the files that you have less commented, or not commented at all, so you can return back add comment for future usage.</p>
<p>Here you can find more information about the Code analysis<br />
<a title="Source lines of code" href="http://en.wikipedia.org/wiki/Source_lines_of_code" target="_blank"> http://en.wikipedia.org/wiki/Source_lines_of_code</a></p>
<p>Here is some of the information that application gives;</p>
<p><strong>Summary</strong><br />
Total searched file in the selected directory<br />
Source Files (ActionScript&amp; MXML files)<br />
Total lines of code in application/selected folder<br />
Total blank lines of code in application/selected folder</p>
<p><strong>Comments</strong><br />
Commented Lines (Total number of commented lines)<br />
Single Line Comment ( e.g. //This is a single ilne comment)<br />
Multi Line Comment (e.g. /*  This is a multi line commen   */)<br />
Code&amp;Comment (e.g. private var arr:Array; \This line include code&amp;comment   )<br />
HTML Comment (e.g  <!-- This is a HTML comment --> )</p>
<p><strong>Primitive Objects</strong><br />
Total number of Number object<br />
Total number of Uint object<br />
Total number of Int object<br />
Total number of String object<br />
Total number of Boolean object</p>
<p><strong>Others</strong><br />
Funcitons (getters and setters are not calculated)<br />
Conditions (if and switch contional statements)<br />
Loops (for, for in, for each, while and do while loops)<br />
Try, Catch Block</p>
<p>And here is the application;<br />
<iframe width="225" height="188" frameborder=0 scrolling="no" src="http://enginyoyen.com/blog/public/app/code-analyzer/"></iframe> </p>
<p>Take Care<br />
<strong>Engin Yöyen</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://enginyoyen.com/blog/eng/?feed=rss2&#038;p=217</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Sending ActionScript Object To Java</title>
		<link>http://enginyoyen.com/blog/eng/?p=209&#038;utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=sending-actionscript-object-to-java</link>
		<comments>http://enginyoyen.com/blog/eng/?p=209#comments</comments>
		<pubDate>Sun, 15 Nov 2009 23:30:32 +0000</pubDate>
		<dc:creator>Engin Yöyen</dc:creator>
				<category><![CDATA[Flash Platform]]></category>

		<guid isPermaLink="false">http://enginyoyen.com/blog/eng/?p=209</guid>
		<description><![CDATA[There is a lot of source about how to communicate between ActionScript and Java via BlazeDs, but almost all of them unfortunately are classic scenarios.  Of course in development we always don’t work with the ideal classic ways, we need different solutions for different problems. One problem I was face to couple months ago sending ActionScript class from ActionScript to Java using RemoteObject, which is actually quite simple but I couldn’t find any example, so I thought it will be good to write about it now. I will only show the code of small example over here, the idea is sending a sending a ActionScript class values to Java, first I will create a class called Book; [as3] package{ public class Book { public var isdn:String; public var authorName:String; public var bookName:String; public var bookID:int; public function Book(){ } } } [/as3] And than I will create a RemoteObject with the destination string bookshop; [as3] var bookRemoteObj:RemoteObject = new RemoteObject(&#8220;bookshop&#8221;); bookRemoteObj.addEventListener(ResultEvent.RESULT, bookResultEvent); bookRemoteObj.addEventListener(FaultEvent.FAULT, bookFaultEvent); private function bookResultEvent(e:ResultEvent):void{ trace(e.message); } private function bookFaultEvent(e:FaultEvent):void{ trace(e.message); } [/as3] Next I will create a new Book Object and store information that I need, and than I will use the bookRemoteObj and send it to [...]]]></description>
			<content:encoded><![CDATA[<p>There is a lot of source about how to communicate between ActionScript and Java via BlazeDs, but almost all of them unfortunately are classic scenarios.  Of course in development we always don’t work with the ideal classic ways, we need different solutions for different problems. One problem I was face to couple months ago sending ActionScript class from ActionScript to Java using RemoteObject, which is actually quite simple but I couldn’t find any example, so I thought it will be good to write about it now.</p>
<p><span id="more-209"></span><br />
I will only show the code of small example over here, the idea is sending a sending a ActionScript class values to Java, first I will create a class called Book;<br />
[as3]<br />
package{<br />
	public class Book	{<br />
		public var isdn:String;<br />
		public var authorName:String;<br />
		public var bookName:String;<br />
		public var bookID:int;<br />
		public function Book(){<br />
		}<br />
	}<br />
}<br />
[/as3]<br />
And than I will create a RemoteObject with the destination string bookshop;<br />
[as3]<br />
var bookRemoteObj:RemoteObject = new RemoteObject(&#8220;bookshop&#8221;);<br />
bookRemoteObj.addEventListener(ResultEvent.RESULT, bookResultEvent);<br />
bookRemoteObj.addEventListener(FaultEvent.FAULT, bookFaultEvent);</p>
<p>private function bookResultEvent(e:ResultEvent):void{<br />
	trace(e.message);<br />
}</p>
<p>private function  bookFaultEvent(e:FaultEvent):void{<br />
	trace(e.message);<br />
}<br />
[/as3]</p>
<p>Next I will create a new Book Object and store information that I need, and than I will use the bookRemoteObj and send it to Java function called <strong>recordBook()</strong></p>
<p>[as3]<br />
var book:Book = new Book();<br />
book.authorName = &#8220;Orhan Pamuk&#8221;;<br />
book.bookName = &#8220;My Name is Red&#8221;;<br />
book.bookID = 1576;<br />
book.isdn = &#8220;978-0375706851&#8243;;<br />
bookRemoteObj.recordBook(book);<br />
[/as3]</p>
<p>And than I will create a RemoteObject destination including id bookshop in remoting-config.xml, and as a source I will create a Java class called BookShopInfoBridge<br />
[xml]<br />
<destination id="bookshop"></p>
<properties>
		<source>com.enginyoyen.sample.bookshop.BookShopInfoBridge</source><br />
		<scope>application</scope>
	</properties>
</destination><br />
[/xml]</p>
<p>Next is creating Java Class, in Java Class I will create a function called recordBook() which except ASObject as a parameter. ASObject in Java will represent a Actionscript Object. This will be the parameter that I want to send from ActionScript. And this is pretty much all, next all you have to do is reach the variables in the Book class, in Java for accessing those information’s, we need to use the get() method and in get() method we have specified which variable we want to get it. So we have to give the variable name as a String to get() method for retrieving the value. If you try this example you should see the output in your tomcat server log, or if you are using the WTP(Web tools platform) with your eclipse you can see the results from Console view.</p>
<p>[as3]<br />
package com.enginyoyen.sample.bookshop;<br />
import flex.messaging.io.amf.ASObject;</p>
<p>public class BookShopInfoBridge {<br />
	public void recordBook(ASObject bookInfo){<br />
		System.out.println(bookInfo.get(&#8220;isdn&#8221;));<br />
		System.out.println(bookInfo.get(&#8220;authorName&#8221;));<br />
		System.out.println(bookInfo.get(&#8220;bookName&#8221;));<br />
		System.out.println(bookInfo.get(&#8220;bookID&#8221;));</p>
<p>	}<br />
}<br />
[/as3]</p>
<p>One last thing, in case if you need certain data type you have to convert to types from ASObject get() method to what you need. For instance if you want to use the bookID as and Integer in Java you can use it as follows;</p>
<p>[as3]<br />
int bookID = (Integer)bookInfo.get(&#8220;bookID&#8221;);<br />
[/as3]</p>
<p>That’s all you need it.<br />
Take Care<br />
<strong>Engin Yöyen!</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://enginyoyen.com/blog/eng/?feed=rss2&#038;p=209</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Concerns About Delivering AIR Applications use Native Processes in AIR 2.0</title>
		<link>http://enginyoyen.com/blog/eng/?p=205&#038;utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=concerns-about-delivering-air-applications-use-native-processes-in-air-20</link>
		<comments>http://enginyoyen.com/blog/eng/?p=205#comments</comments>
		<pubDate>Sat, 17 Oct 2009 19:46:33 +0000</pubDate>
		<dc:creator>Engin Yöyen</dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://enginyoyen.com/blog/eng/?p=205</guid>
		<description><![CDATA[One of the most wanted requests in AIR Runtime was the capability of communication with the other programs in the operating system that AIR applications will run. Well with AIR 2.0(Athena) finally Adobe decides to add this functionality. But now I do have another concern, but first I want to explain what the new ways of communicating with other programs in AIR 2.0 are. If you want to open another program in AIR 2.0 all you have to do is calling the openWithDefaultApplication() method of the File Class. Of course you have to specify which file you want to be open. For instance if you want text file to be open with text editor, all you have to do is calling the method and text file will open with assigned default application. This is pretty simple.Of course by this way you cannot communicate with the application that will open, all you do is give a command to open. If you want to communicate with the other applications in operating systems, than you have to use what call Native Processes. This is of course really good news, because including me lots of people face to problem of how to do that. [...]]]></description>
			<content:encoded><![CDATA[<p>One of the most wanted requests in AIR Runtime was the capability of communication with the other programs in the operating system that AIR applications will run. Well with AIR 2.0(Athena) finally Adobe decides to add this functionality. But now I do have another concern, but first I want to explain what the new ways of communicating with other programs in AIR 2.0 are.</p>
<p>If you want to open another program in AIR 2.0 all you have to do is calling the <strong>openWithDefaultApplication()</strong> method of the <strong>File</strong> Class. Of course you have to specify which file you want to be open. For instance if you want text file to be open with text editor, all you have to do is calling the method and text file will open with assigned default application. This is pretty simple.Of course by this way you cannot communicate with the application that will open, all you do is give a command to open.</p>
<p>If you want to communicate with the other applications in operating systems, than you have to use what call <strong>Native Processes</strong>. This is of course really good news, because including me lots of people face to problem of how to do that. But there is a small concern, much is I understand if a developer decide to use the Native Processes than developer have to release AIR project as EXE,DMG  or Debian and RPM’s. That means soon as we decide to use the Native Processes, we will no longer be able to use AIR file as published installer. The reason why many people want to use AIR is because it is cross platform. And of course Adobe is not stepping back from this idea, but there is also no reason to use Native Processes and still release the project as AIR file.</p>
<p>It is simple, as a developer when I want to use <strong>Native Processes</strong> I am aware there are different operating systems and all operating system doesn’t support same features/applications. But why simply detecting that in AIR application and executing code by that decision instead of releasing programs for different operating systems as different installers.</p>
<p>I am sure they have a good explanation for this feature, but as developer I want things to be easy, we are all ready spending so much time for unimportant things than developing, decreasing our productivity is not a good idea.</p>
<p><strong>PS: </strong>I based this article on presentation of Christian Cantrell in Adobe Max, as you all know all features are not concrete I might be wrong of my thoughts. In case if you want to watch presentation online here is the link;<br />
<a href="http://tv.adobe.com/watch/max-2009-develop/whats-coming-in-adobe-air-2-" target="_blank">http://tv.adobe.com/watch/max-2009-develop/whats-coming-in-adobe-air-2-</a></p>
<p>Take Care,<br />
<strong>Engin Yöyen!</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://enginyoyen.com/blog/eng/?feed=rss2&#038;p=205</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Disabling Certain Rows in Data Grid</title>
		<link>http://enginyoyen.com/blog/eng/?p=193&#038;utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=disabling-certain-rows-in-data-grid</link>
		<comments>http://enginyoyen.com/blog/eng/?p=193#comments</comments>
		<pubDate>Sun, 11 Oct 2009 16:33:51 +0000</pubDate>
		<dc:creator>Engin Yöyen</dc:creator>
				<category><![CDATA[Flash Platform]]></category>

		<guid isPermaLink="false">http://enginyoyen.com/blog/eng/?p=193</guid>
		<description><![CDATA[Using data grid is great, but sometimes you may need to disable certain rows of data grid. By default Flex SDK doesn’t support disabled rows. But with a few line of cods this functionality can be add easily. First of all we have to create a new Actionscript class and extend to do DataGrid. For disabling a row we have to override two method first one is mouseEventToItemRenderer() and second one is drawRowBackground() . First method will trigger every time mouse over to data grid row. When method is triggered method will check the incoming data and if data property enabled is false than it will return null, otherwise it will return the item renderer as it comes. Second method is drawing the background of row, this is only visual presentation. In this method when an enabled property is false it will draw background as gray, which can indicate the row is disable. Here are the methods; [as3] override protected function mouseEventToItemRenderer(event:MouseEvent):IListItemRenderer{ var listItem:IListItemRenderer = super.mouseEventToItemRenderer(event); if (listItem){ if (!listItem.data.enabled){ return null; } } return listItem; } override protected function drawRowBackground(sprite:Sprite, rowIndex:int, y:Number, height:Number, color:uint, dataIndex:int):void{ if(!dataProvider[rowIndex].enabled){ color = 0xdedede; } super.drawRowBackground(sprite, rowIndex, y, height, color, dataIndex); } [/as3] The [...]]]></description>
			<content:encoded><![CDATA[<p>Using data grid is great, but sometimes you may need to disable certain rows of data grid. By default Flex SDK doesn’t support disabled rows. But with a few line of cods this functionality can be add easily. First of all we have to create a new Actionscript class and extend to do DataGrid.</p>
<p>For disabling a row we have to override two method first one is <strong>mouseEventToItemRenderer()</strong> and second one is <strong>drawRowBackground()</strong> . First method will trigger every time mouse over to data grid row.  When method is triggered method will check the incoming data and if data property <strong>enabled</strong> is false than it will return null, otherwise it will return the item renderer as it comes. Second method is drawing the background of row, this is only visual presentation. In this method when an <strong>enabled</strong> property is false it will draw background as gray, which can indicate the row is disable. Here are the methods;<br />
<span id="more-193"></span><br />
[as3]<br />
override protected function mouseEventToItemRenderer(event:MouseEvent):IListItemRenderer{<br />
	var listItem:IListItemRenderer =<br />
	super.mouseEventToItemRenderer(event);</p>
<p>	if (listItem){<br />
		if (!listItem.data.enabled){<br />
			return null;<br />
		}<br />
	}<br />
	return listItem;<br />
}</p>
<p>override protected function drawRowBackground(sprite:Sprite,<br />
	rowIndex:int, y:Number, height:Number, color:uint, dataIndex:int):void{<br />
	if(!dataProvider[rowIndex].enabled){<br />
		color = 0xdedede;<br />
	}<br />
	super.drawRowBackground(sprite, rowIndex, y, height, color, dataIndex);<br />
}<br />
[/as3]<br />
The rest is simple; all to do is using the class in application you need to use. You can check the sample and download the source code from the link at below;</p>
<p><a title="Sample and Source Code" href="http://www.enginyoyen.com/blog/public/11-10-2009/ModifiedDataGrid/index.html" target="_blank">Sample and Source Code</a></p>
<p>Take Care<br />
<strong>Engin Yöyen!</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://enginyoyen.com/blog/eng/?feed=rss2&#038;p=193</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Introduction to Object-Oriented Programming–1 (Classes)</title>
		<link>http://enginyoyen.com/blog/eng/?p=182&#038;utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=introduction-to-object-oriented-programming%25e2%2580%25931-classes</link>
		<comments>http://enginyoyen.com/blog/eng/?p=182#comments</comments>
		<pubDate>Sun, 24 May 2009 10:31:24 +0000</pubDate>
		<dc:creator>Engin Yöyen</dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://enginyoyen.com/blog/eng/?p=182</guid>
		<description><![CDATA[Although “Object-Oriented Programming” combination of these words is scary for beginning programmers, but after beginning the OOP it turns out that all process is not so hard actually. I think the difficult part for beginner is always adaptation process. For making this process little easier I will make a short introduction to object-oriented programming. In this and the next few sections I will explain the basic terms and they part of work in object oriented programming. Classes and Objects Classes are code snippets which do simple tasks for us. To do a specific job, sometimes one, sometimes several different classes at the same time can be used. For using these classes we have to create an Object of a class. For example, let say there is an image animation that you use in every project you&#8217;re working on, which is working with 40 lines of codes. Normally (when writing code in timeline), you have to copy and paste these 40 lines of code every time you want to use the animation. Rather than that you can write bit of more code and turn that animation code as a single ActionScript file. In this case has been developed a Class. You [...]]]></description>
			<content:encoded><![CDATA[<p>Although “<em><strong>Object-Oriented Programming</strong></em>” combination of these words is scary for beginning programmers, but after beginning the OOP it turns out that all process is not so hard actually. I think the difficult part for beginner is always adaptation process. For making this process little easier I will make a short introduction to object-oriented programming. In this and the next few sections I will explain the basic terms and they part of work in object oriented programming.</p>
<h3>Classes and Objects</h3>
<p>Classes are code snippets which do simple tasks for us. To do a specific job, sometimes one, sometimes several different classes at the same time can be used. For using these classes we have to create an<strong> Object</strong> of a class.</p>
<p>For example, let say there is an image animation that you use in every project you&#8217;re working on, which is working with 40 lines of codes. Normally (when writing code in timeline), you have to copy and paste these 40 lines of code every time you want to use the animation. Rather than that you can write bit of more code and turn that animation code as a single ActionScript file. In this case has been developed a <strong>Class</strong>. You can use the animation of this class file in Timeline or in another <strong>Class</strong> structure. But whenever you use the <strong>Class</strong> file you have created you are actually creating and using <strong>Object</strong>. Which means an <strong>Object</strong> is instance of a class file.</p>
<p><span id="more-182"></span>Let us say that the name given to the class file is <strong>ImageAnimationClass</strong>, to use this animation we have to create an <strong>Object</strong> belonging to this class. So;<br />
[as3]<br />
var anim: ImageAnimationClass = new ImageAnimationClass ();<br />
[/as3]<br />
The code above is an object that is a reflection of the class. In short, objects are an abstract reflection of. Now let us go into the technical part. When creating a class, you need to follow the simple rules.</p>
<p>First I will start with ActionScript File. ActionScript class files can be created by a simple text editor such as Notepad. The only thing you need to do is to register as <em><strong>*.as</strong></em> extension. But it is logical to use programs such as Flash Professional, Flex Builder or Flash Developer. If you are using Flash, if you are opened your Flash you can select <em><strong>Actionscript File</strong></em> from <em><strong>Welcome Window</strong></em> or you can select from menu <em><strong>File &gt; New &gt; Actionscript File</strong></em>. Soon as you select there a blank file ActionScript file will open.</p>
<p>First rule is name of file and name of class have to be same. For example if name of your class is <strong>ImageAnimationClass</strong> name of file must be <em><strong>ImageAnimationClass.as</strong></em>. Normally class names begin with capital letter. When there is more than a word than words become a single word sequence without any space and again each word is begin with capital letter. Generally single ActionScript file has a single class. This is not a rule of course but in fact this is the most common method. The reason is common is not because it is a classical course, because it is functional.</p>
<p>PS: In a single class file can be too many class structures, but only one of them will be accessible outside the class file. The class which can be access must be included in package statement</p>
<h3>Writing a Class</h3>
<p>When you have to write a Class you must use the class word. Then the name of the class comes.</p>
<p>After the class name there will be curly braces (<em><strong>{}</strong></em>).  Functions, variables and rest of the code which belongs the class will take place between curly braces (<em><strong>{}</strong></em>).The following example has a basic class structure, when this class works, <strong>trace ()</strong> method will give an output.</p>
<p><em><strong>SampleClass.as</strong></em><br />
[as3]<br />
package {<br />
	public class SampleClass {<br />
		public function SampleClass() {<br />
			trace(&#8220;Sample class did work&#8221;);<br />
		}<br />
	}<br />
}<br />
[/as3]<br />
In this example<strong> SampleClass() </strong> method is a constructor method of the class. When class structure is loaded and starts this method running automatically. So if there is a snippet of code or functions within class structure that have to work, all you have to do place in to constructor method.</p>
<p>One more thing; You can think of the <strong>Function</strong> as is equal to the original concept of the concept of the <strong>Method</strong>.<br />
A function prepared within Class structure is called method. A variable prepared within Class structure is called property. This is basic information for beginning, in other articles I will explain differences with much more detail. The following example is show how property and methods works.</p>
<p><em><strong>SampleClass.as</strong></em><br />
[as3]<br />
package {<br />
	public class SampleClass {<br />
		public var testProperty:String=&#8221;Test property did work&#8221;;</p>
<p>		public function SampleClass():void {<br />
			trace(&#8220;Sample class did work&#8221;);<br />
		}</p>
<p>		public function testMethod():void {<br />
			trace(&#8220;Test method did work&#8221;);<br />
		}<br />
	}<br />
}<br />
[/as3]<br />
Testing this code is also simple, all you have to do is import the class and create new object, than call the method and trace out the property;<br />
[as3]<br />
import SampleClass;<br />
var testObject: SampleClass = new SampleClass ();<br />
testObject.testMethod();<br />
trace(testObject.testProperty);<br />
[/as3]<br />
The output will be as following;<br />
<em><strong>Sample class did work<br />
Test method did work<br />
Test property did work</strong></em></p>
<h3>Up Shot</h3>
<p>In next articles I will cover the packages and class attributes.</p>
<p>Take care<br />
Engin!</p>
]]></content:encoded>
			<wfw:commentRss>http://enginyoyen.com/blog/eng/?feed=rss2&#038;p=182</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Transition from Procedural Programming to Object Oriented Programming</title>
		<link>http://enginyoyen.com/blog/eng/?p=178&#038;utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=transition-from-procedural-programming-to-object-oriented-programming</link>
		<comments>http://enginyoyen.com/blog/eng/?p=178#comments</comments>
		<pubDate>Fri, 06 Mar 2009 21:47:34 +0000</pubDate>
		<dc:creator>Engin Yöyen</dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://enginyoyen.com/blog/eng/?p=178</guid>
		<description><![CDATA[There are few small topics that you have to learn before you start programming OOP. Before I start I want to mention a feature which same with Flash CS3. With Flash CS3 we were not able to write codes on Buttons or MovieClips. This was not a good feature for lots of developers. But I find this feature very useful, because as a developer I am not favor of seeing 100 pieces of code all around of one simple project. Of course there is no such a rule which say; you have to write all code in 1 frame”, but writing code on each button and movie clip which is added to project is also not a good work style. Anyway in this article I will cover how to use Document Class, Library Objects and Classpath. Document Class With Flash CS3 new feature introduced called “Document Class”. With this feature now we can integrate class files without adding any code in timeline. Of course if you want you can still use timeline but as a developer you have to decide it is necessary or not. Usage of Document Class is very simple. First you have to make a class file [...]]]></description>
			<content:encoded><![CDATA[<p>There are few small topics that you have to learn before you start programming OOP. Before I start I want to mention a feature which same with Flash CS3. With Flash CS3 we were not able to write codes on Buttons or MovieClips. This was not a good feature for lots of developers. But I find this feature very useful, because as a developer I am not favor of seeing 100 pieces of code all around of one simple project. Of course there is no such a rule which say; you have to write all code in 1 frame”, but writing code on each button and movie clip which is added to project is also not a good work style. Anyway in this article I will cover how to use Document Class, Library Objects and Classpath.</p>
<h3>Document Class</h3>
<p>With Flash CS3 new feature introduced called “<em><strong>Document Class</strong></em>”. With this feature now we can integrate class files without adding any code in timeline. Of course if you want you can still use timeline but as a developer you have to decide it is necessary or not.<br />
Usage of Document Class is very simple. First you have to make a class file that you want to use as a Document Class. Than you have to add name of this class in the <em><strong>Document Class</strong></em> property of the flash document which you can reach from Properties panel.</p>
<p>Here is a simple class for purpose of testing;</p>
<p><span id="more-178"></span><br />
<em>DocumentTest.as</em><br />
[as3]<br />
package {<br />
import flash.display.Sprite;<br />
public class DocumentTest extends Sprite {<br />
public function DocumentTest() {<br />
trace(&#8220;Document Class is working&#8230;&#8221;)<br />
}<br />
}<br />
}<br />
[/as3]<br />
You have to open new Actionscript file and than the code above. Than you have to name DocumentTest and saved. Afterwards create new flash document and save in same folder. And now what you have to do is add the name of class in the Document Class field in Properties panel.</p>
<p><img class="aligncenter size-full wp-image-172" title="Document Class" src="http://enginyoyen.com/blog/eng/wp-content/uploads/2009/03/documentclass.jpg" alt="Document Class" width="550" height="106" /></p>
<p>Now you can test your flash document. When you test you will receive a message from output panel which is in the Document Class. So this is all, not even a single line of code in flash document.</p>
<p>There are couple details that you should take care when you are using document class. First of all the document class must extend Movie Clip or Sprite class. In the example above I extend the Sprite class and also import Sprite class. If you have more than one class structure you don’t have to extend all classes as Movie Clip or Sprite class. You should do that for document class unless is not necessary for the other classes.</p>
<p>When you type name of your class name in document class properties and test your flash file document class runs automatically. How ever if you want to do this manual or let say you want to control this option than by adding the extension name (<em><strong>.as</strong></em>) n the document class properties you can use it manual. Than all you have to do is create instance of the class.</p>
<p>[as3]<br />
var d:DocumentTest = new DocumentTest();<br />
[/as3]</p>
<h3>Library Objects</h3>
<p>One of the new features came with Actionscript 3.0 that we can use the library objects as a class instances. All you have to do is give linkage ID to object in library. If your object is image it will get Bitmap class as a base class, if your object is Movie Clip it will get MovieClip class as a base class. For example; draw a circle on stage and make a movie clip. Than open your library and right warning message lick on object, from menu select Linkage;</p>
<p style="text-align: center"><img src="http://enginyoyen.com/blog/eng/wp-content/uploads/2009/03/library.jpg" alt="Library" /></p>
<p>Select the “Export For Actionscript” on the window which appear. Than you can enter the instance name that you wish top art which says Class.</p>
<p style="text-align: center"><img src="http://enginyoyen.com/blog/eng/wp-content/uploads/2009/03/linkage.jpg" alt="Linkage" /></p>
<p>When you click ok warning message will appear. Reason of warning message is because there is no class exists by the definitionname you give that’s why it will use the MovieClip as a base class. You can click Ok and finish library part. Now on all you have to do is create instance of library objects.<br />
[as3]<br />
var lib:library_test = new library_test();<br />
addChild(lib);<br />
[/as3]</p>
<h3>Classpath</h3>
<p>There are two ways of using classes, first copying classes that you want to use in same folder of flash document. This is not a big deal but when ever you start new project and you need those classes you have to copy and paste those files. Second option is using class path. Class path is a folder path which contain Actionscript classes that you use or create.</p>
<p>By using class path you don’t have to copy and paste every time you use some Actionscript classes. For adding class path select;</p>
<p>Edit &gt; Prefences or press <em><strong>Ctrl + U</strong></em> from keyboard. In following window click Actionscript from left menu. Than click “<em><strong>Actionscript 3.0 Settings</strong></em>” from “<em><strong>Language</strong></em>” section (Left, Bottom) , soon as you click window above will appear;</p>
<p style="text-align: center"><img src="http://enginyoyen.com/blog/eng/wp-content/uploads/2009/03/classpath.jpg" alt="Classpath" /></p>
<p>Now one thing you should not do is editing or removing $(AppConfig) section. In case if you delete you wont be able to use Actionscript main classes Over here all you have to do is click button with the plus sign and than new path field will open. Than click new added area and select folder which contain your action script classes. Now on you don’t have to copy and paste your class at all.<br />
<em><strong>Ps: The visual materials used in this article have been taken from Actionscript 3.0 book. Because of copyright is not allowed to use materials in this article without permission. </strong></em></p>
<h3>Up Shot</h3>
<p>In next article of this series I will explain basic information about class structures such as methods, functions, properties and etc.</p>
<p>Take Care<br />
Engin!</p>
]]></content:encoded>
			<wfw:commentRss>http://enginyoyen.com/blog/eng/?feed=rss2&#038;p=178</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>What is Object Oriented Programming?</title>
		<link>http://enginyoyen.com/blog/eng/?p=38&#038;utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=what-is-object-oriented-programming</link>
		<comments>http://enginyoyen.com/blog/eng/?p=38#comments</comments>
		<pubDate>Wed, 04 Feb 2009 19:35:58 +0000</pubDate>
		<dc:creator>Engin Yöyen</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Actionscript 3.0]]></category>
		<category><![CDATA[Object Oriented Programming]]></category>

		<guid isPermaLink="false">http://enginyoyen.com/blog/eng/index.php/what-is-object-oriented-programming/</guid>
		<description><![CDATA[Before starting to the topic I want to mention this is a first part of series article about Object Oriented Programming (OOP). As is not easy to cover OOP with detail in couple articles I thought would be better to divide to the pieces. First I will be covering basics of OOP and than I am planning to write about Design Patterns. Object Oriented Programming In basic understanding OOP is; making objects from pieces of solution out of existing problem. The goal is to having those objects ready to use for similar problems in future. The advantage of OOP is that you could manipulate each piece of solution fast and easy. Because solution of problem divided many useful pieces, manipulating single piece of solution it’s also fast and easy. Manufacturing systems will be good example for this. Let’s say a car producer want to produce new car series. Those cars will have same and different features than each other or better to say each series. Let’s assume that number of series might have such as; A10, A11, A12.  All those series have common features such as; air conditioning, music system, navigation system. A11 series as an extra has a rain [...]]]></description>
			<content:encoded><![CDATA[<p>Before starting to the topic I want to mention this is a first part of series article about Object Oriented Programming (OOP). As is not easy to cover OOP with detail in couple articles I thought would be better to divide to the pieces. First I will be covering basics of OOP and than I am planning to write about Design Patterns.</p>
<h3>Object Oriented Programming</h3>
<p>In basic understanding OOP is; making objects from pieces of solution out of existing problem. The goal is to having those objects ready to use for similar problems in future. The advantage of OOP is that you could manipulate each piece of solution fast and easy. Because solution of problem divided many useful pieces, manipulating single piece of solution it’s also fast and easy. Manufacturing systems will be good example for this.</p>
<p><span id="more-38"></span><br />
Let’s say a car producer want to produce new car series. Those cars will have same and different features than each other or better to say each series. Let’s assume that number of series might have such as; A10, A11, A12.  All those series have common features such as; air conditioning, music system, navigation system. A11 series as an extra has a rain sensor feature. A12 series as an extra has a rain sensor, air bag, sound control system features.</p>
<p>The common features of three series of car are; air conditioning, music system, navigation system, wheels, doors and etc. Car producer is designing and producing those common features only one time. But using the same materials for three different series of cars. This is the basic working system in OOP. The problem is producing car. First we have to find the way to solve the problem in smart way so there won’t be any problem afterwards. Than solution of problem will be divided to many pieces as possible (of course with the way its make sense). Each piece of solution is becoming object (Class). And combination of all objects is solution of main problem.</p>
<h3>How OOP Was Born and Brought New Advantages</h3>
<p>OOP is born because existing systems was causing so much money and time. Biggest advantage of OOP is in big projects saves a lot of time and money to do programmer/company. The problems start to come up in 1960’s. Software’s start to get bigger, and manipulating a software it was big problem. If people want it to add some functionality they have to get in thousands lines of code and try to change something in mass. And side effect of this is that they need to spend so much money for this (time = money).<br />
But the OOP programming is different. When you want to add a function or change some functionality all you have to is find the class in structure that you made and than manipulate on direction way you want this class to work. Class in your package is all ready serve a purpose (all ready have a certain job), so you can affect this class easily with out problem.<br />
Also you can use the class which is ready, for your other projects.</p>
<h3>Usage of OOP</h3>
<p>Main purpose of the OOP is decrease the work hours and not doing same thing over and over again. For example; if there is a animation that you are using so often you may want to write a class for this animation and when you need this animation again, all you have to do is create instance of animation. At the end one way the other you have to write certain amount of code, but like this it will be much more easer to use it over and over again.</p>
<p>From other side you don’t have to make everything with OOP. If there is a application which you will use only ones or is unique for a customer than you don’t have to bother your self to write class. But if you are using backgrounds or database communication in this application, you can write a small class which will do these jobs. So next time you can use this classes for other application.</p>
<p>If you can make the decision process in a good way this will help you to develop your self and also will decrease amount of time you work on projects.</p>
<h3>Upshot</h3>
<p>In Object Oriented Programming first you will decide what you want to do. And than you start to create system piece by piece (Class). You can manipulate these classes when ever you want how ever you want with easy and quick access. And of course you can use these classes for some other projects to.</p>
<p>In next article I will cover transition from Procedural Programming to Object Oriented Programming.</p>
<p>Take care<br />
Engin!</p>
]]></content:encoded>
			<wfw:commentRss>http://enginyoyen.com/blog/eng/?feed=rss2&#038;p=38</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Programming and Education about Programming</title>
		<link>http://enginyoyen.com/blog/eng/?p=37&#038;utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=programming-and-education-about-programming</link>
		<comments>http://enginyoyen.com/blog/eng/?p=37#comments</comments>
		<pubDate>Sun, 04 Jan 2009 23:15:32 +0000</pubDate>
		<dc:creator>Engin Yöyen</dc:creator>
				<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://enginyoyen.com/blog/eng/index.php/programming-and-education-about-programming/</guid>
		<description><![CDATA[The main target of this article is to answer different questions that I get about programming and process of learning programming. The questions are usually comes from people who working in different programming language and want to learn to new one, information about programming academies, about programming, and how hard is language. That’s why I think article may help to people who want to start to learn new programming language and who all ready did start. (The article mostly about how I think and about experience that I had. Generally I don’t think there might be the so much different between different countries, but this is also open topic) Programming and Being Professional in Programming Language Programming basically is not an easy but therefore an enjoyable work/job.  Of course this is relative to the language you use, work you do, application you do and so on. Anyway as a description I could say Programming is not learning a programming language, programming is learning to be able to program. I think programmer should be able to see programming language it is not as a target that have to reach, instead have to see as a tool that he/she have to use. [...]]]></description>
			<content:encoded><![CDATA[<p>The main target of this article is to answer different questions that I get about programming and process of learning programming. The questions are usually comes from people who working in different programming language and want to learn to new one, information about programming academies, about programming, and how hard is language. That’s why I think article may help to people who want to start to learn new programming language and who all ready did start. (The article mostly about how I think and about experience that I had. Generally I don’t think there might be the so much different between different countries, but this is also open topic)</p>
<h3>Programming and Being Professional in Programming Language</h3>
<p>Programming basically is not an easy but therefore an enjoyable work/job.  Of course this is relative to the language you use, work you do, application you do and so on. Anyway as a description I could say <em><strong>Programming is not learning a programming language, programming is learning to be able to program</strong></em>. I think programmer should be able to see programming language it is not as a target that have to reach, instead have to see as a tool that he/she have to use. A programmer should be able to work in more than one programming language. If you are able to use ActionScript 3.0 there is no reason why you can not program in Java or JavaScript. Of course syntax of those languages may be close to each other but my point is if you are able to program in certain programming language you should also be able to program with some other language too. The key point is the learning basics of the language, with other term learning the syntax. Rest of the knowledge you need you will get it piece by piece when you need it.</p>
<p>I don’t want you to get wrong. Being able to programming and being professional in certain language is totally different things. Being good in programming will help you to work with different platforms much more easily. But being professional in programming language means developing your self in certain field. Being professional in certain language is always give you chance to work in the better place and certain kind of works with it.</p>
<p><span id="more-37"></span> For instance, I am a web designer. The markup and programming language that I use usually is Css, HTML, PHP, MySql, JavaScript. But my main professional area is ActionScript 3.0, I focus on this language. If any company that I work with gets any project which including Flash, Flex or AIR they contact to me. Because it is the area that I mainly focus on. But more than 60 percent of the works that I get I am using those platforms that I listed above (Css,HTML,PHP…). The difference is no one will not call me because I am good in PHP, but I should be able to design dynamic Flash site which is working PHP on background. At the end this is a small example, we all know the number of tools and languages we use is more than that. For example I am not in to it C but I am working with Pixel Bender.</p>
<p>There is a huge difference between web and desktop programming. In web programming you might be professional in one field but working in other fields which is related sometimes is necessary sometime you have to do it. If you are working with Flash and ActionScript probably you might need or you have to use those platform as below;</p>
<p>PHP, MySql, JavaScript, XML, CSS, HTML</p>
<p>Of course they are one of the basics of the web programming. Maybe instead of PHP you could use ASP.Net but rest is necessary one way or the other.</p>
<h3>Learning Process</h3>
<p>Being programmer is a process. You can’t be a programmer by reading a book, either taking class won’t make you programmer. Unfortunately you cannot be programmer by studying in university either. I hope you don’t get me wrong in this point, for me being programmer is result of a long term working process. What I mean is you cannot learn anything from the books which has a title “Learn C/C++/AS 3.0/Java in 24 Hours”. If you have a capability of learning a language in 24 hours than you don’t even need that book. You become a programmer after many years of experience.</p>
<p>I think ideal time is between 7 and 10 years. You may have a good knowledge of language, you may know the week part, mistakes, positive and negative parts but all of those don’t make you a good programmer. A good programmer wouldn’t like the code which he/she wrote in past. Idea is simple actually ; process of being good programmer is long, so for example you work in similar project that you have work 5-6 months ago, than you realize code differences which you wrote before and which you wrote recently. New one supposes to be a better and cleaner event more useful. This is also a sign of self development. Much is you develop your self you will see the mistakes you are making and you wont do those mistakes next time when you code. You may write the same application that you wrote a year ago with 300 lines which was originally 800 lines of code.</p>
<h3>Education about Programming</h3>
<p>You can get education from different private schools(Programming academy,Programming training center, etc). I have no knowledge or idea which school or institute is better. Some of them are really good maybe some of course turn out so bad. But I also been witness a lot of people which can not do anything but took 1,5 year of education and paid a lot of money to those private schools.</p>
<p>Education of Programming is relative to person who is taking. Some people take 6 months of training and knowledge of that person increase just a bit. Some people quit after 4 month because that person think training is not good or not challenged enough. The point is your personal capabilities and your process of learning. If you think you can learn alone by having book will be enough to start to learn programming language. But if you don’t want to be alone in learning process and having people around which can help you when you need you can also go to one of private schools.</p>
<p>My personal opinion is, that you should choose the one which is better for you and one fitting your process of learning. Some people learn easy, some people get bored by working alone, some people love to read book, some love to work alone, so you should know better which one is fitting for you best. After finishing a book or training course in private school you should not mistaken that your knowledge might be complete. There is still a lot you haven&#8217;t been taught. That is just a beginning and going forward is only possible by practicing. On theory a lot of thing is much more easy and simple. But in practice you will be face to real problems. Each problem as equal to a question, and each answer will help you to solve new problems much more easy. Which I would say is basics of self development.</p>
<h3>Up Shot</h3>
<p>Being programmer is long process of working. As process is taking so much time there will be lots of effect which will slow down your learning process. But biggest effect is working place. Your working place will redirect you the area is necessary in that moment. This sometime might be good sometime might be bad. This is more up to where you working. If you think where you working currently is not good enough for you and you can do better works in better working place my advise is you should do it. In some country’s web design and programming still doesn’t get the attention as it worth. I know that from my own country so well.</p>
<p>Take Care<br />
Engin</p>
]]></content:encoded>
			<wfw:commentRss>http://enginyoyen.com/blog/eng/?feed=rss2&#038;p=37</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using Actionscript 3 Language Reference in Flash CS4</title>
		<link>http://enginyoyen.com/blog/eng/?p=35&#038;utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=using-actionscript-3-language-reference-in-flash-cs4</link>
		<comments>http://enginyoyen.com/blog/eng/?p=35#comments</comments>
		<pubDate>Thu, 18 Dec 2008 19:03:03 +0000</pubDate>
		<dc:creator>Engin Yöyen</dc:creator>
				<category><![CDATA[Flash Platform]]></category>

		<guid isPermaLink="false">http://enginyoyen.com/blog/eng/index.php/using-actionscript-3-language-reference-in-flash-cs4/</guid>
		<description><![CDATA[Being able to program with an language is not mean you have knowledge of all the methods, parameters, structure etc. I would say; good is as language documentation is easy to find and use the functionality of the language from developer perspective. I love ActionScript 3.0 language reference, first was bit on not understandable but currently is everything I need. In Flash CS3 you can simply press F1 and see the language reference. Of course you can reach that also online; http://help.adobe.com/en_US/Flash/10.0_UsingFlash/ The main problem I had was the when I press F1 in Flash CS4 instead of help panel my default browser was trying to connect the online documentation. Of course now days you can find internet everywhere but I still do prefer to reach language reference on my computer. For just getting information about an event or an method I have to connect internet wait for page to be open, than click over and over again. For me this is such a waste of time and simply I don’t like it. But there is a solution for this problem. The copy of language reference is being installed when you install copy of Flash CS4. There is two ways [...]]]></description>
			<content:encoded><![CDATA[<p>Being able to program with an language is not mean you have knowledge of all the methods, parameters, structure etc. I would say; good is as language documentation is easy to find and use the functionality of the language from developer perspective. I love ActionScript 3.0 language reference, first was bit on not understandable but currently is everything I need. In Flash CS3 you can simply press F1 and see the language reference. Of course you can reach that also online;</p>
<p><a href="http://help.adobe.com/en_US/Flash/10.0_UsingFlash/" title="Actionscript 3.0 Language Reference" target="_blank">http://help.adobe.com/en_US/Flash/10.0_UsingFlash/</a></p>
<p>The main problem I had was the when I press F1 in Flash CS4 instead of help panel my default browser was trying to connect the online documentation. Of course now days you can find internet everywhere but I still do prefer to reach language reference on my computer. For just getting information about an event or an method I have to connect internet wait for page to be open, than click over and over again. For me this is such a waste of time and simply I don’t like it. But there is a solution for this problem. The copy of language reference is being installed when you install copy of Flash CS4. There is two ways to reach this documentation, first is finding on operating file system.</p>
<p>On windows operating system path is;<br />
<strong>C:Program FilesCommon FilesAdobeHelpen_USAS3LCRFlash_10.0index.html</strong></p>
<p>On Mac operating system path is;<br />
<strong>/Library/Application Support/Adobe/Help/en_US/AS3LCR/Flash_10.0/index.html</strong></p>
<p>On Linux operating system path is;<br />
<strong>/Library/Application Support/Adobe/Help/en_US/Flash/10.0_UsingFlash/index.html</strong></p>
<p><span id="more-35"></span><br />
You can create short cut on your desktop or add a bookmark to your internet browser for using faster. Second way is setting the connection setting on Flash CS4. By default Flash CS4 is set it to be connect internet and use online services. You can disable/make-offline this option and when you click <strong>F1</strong> while is offline your language reference will be open in internet browser from your computer. So you don’t have to view online.  For doing this you have select</p>
<p><em><strong>Windows &gt; Extension &gt; Connection </strong></em></p>
<p>from menu of Flash CS4. You have to click the arow on right side from upcoming panel and select <strong>Offline Options</strong>;</p>
<p style="text-align: center"><img src="http://enginyoyen.com/blog/eng/wp-content/uploads/2008/12/connections1.jpg" alt="Connection Settings" /></p>
<p>Afterwards you have select <strong>Keep Me Offline</strong> and click <strong>OK</strong>. Now on you can use language reference on your local computer by pressing F1.</p>
<p>The part you have to be careful over here is services like Kuler which need internet will not be able to work as you select to make your Flash CS4 work offline. The best option is having shortcut of language reference or bookmark to your internet browser.</p>
<p>Take Care<br />
Engin!</p>
]]></content:encoded>
			<wfw:commentRss>http://enginyoyen.com/blog/eng/?feed=rss2&#038;p=35</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

