<?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>Mariush T. - Freelance Flex/PureMVC Developer - blog</title>
	<atom:link href="http://mariusht.com/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://mariusht.com/blog</link>
	<description>A blog about Flex Development.</description>
	<lastBuildDate>Thu, 11 Mar 2010 00:23:36 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Resumable File Downloader &#8211; Simple AIR app</title>
		<link>http://mariusht.com/blog/2010/03/10/resumable-file-downloader-simple-air-app/</link>
		<comments>http://mariusht.com/blog/2010/03/10/resumable-file-downloader-simple-air-app/#comments</comments>
		<pubDate>Wed, 10 Mar 2010 23:59:28 +0000</pubDate>
		<dc:creator>Mariush T.</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[AIR]]></category>
		<category><![CDATA[ByteArray]]></category>
		<category><![CDATA[FileStream]]></category>
		<category><![CDATA[Flex 4]]></category>
		<category><![CDATA[URLRequest]]></category>
		<category><![CDATA[URLRequestHeader]]></category>
		<category><![CDATA[URLStream]]></category>

		<guid isPermaLink="false">http://mariusht.com/blog/?p=1884</guid>
		<description><![CDATA[
This AIR application demonstrates how to download, pause and resume downloads of larger files(mp3, flv, etc) and save to the user&#8217;s computer. Big Thanks to Benjamin Dobler for his blog post Resumable Downloads with AIR.


Sample Files:
ResumableDownloader.air (AIR, 524 KB)
]]></description>
			<content:encoded><![CDATA[<p><img alt="" src="http://mariusht.com/files/blog/resumable_downloader/resumableDownloader.jpg" class="alignnone" width="656" height="319" /></p>
<p>This AIR application demonstrates how to download, pause and resume downloads of larger files(mp3, flv, etc) and save to the user&#8217;s computer. Big Thanks to <a href="http://richapps.de/">Benjamin Dobler</a> for his blog post <a href="http://richapps.de/?p=113">Resumable Downloads with AIR</a>.</p>
<div style="float: right; margin: 5px 0 15px 5px;">
<input class="btn" type="button" value="View Source" onClick="window.open('http://mariusht.com/files/blog/resumable_downloader/ResumableDownloader.mxml.html')"/></div>
<p><strong>Sample Files:</strong><br />
<a href="http://mariusht.com/files/blog/resumable_downloader/ResumableDownloader.air">ResumableDownloader.air</a> <span style="color: #808080;">(AIR, 524 KB)</span></p>
]]></content:encoded>
			<wfw:commentRss>http://mariusht.com/blog/2010/03/10/resumable-file-downloader-simple-air-app/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sending messages from server socket to client sockets</title>
		<link>http://mariusht.com/blog/2010/02/13/sending-messages-from-server-socket-to-client-sockets/</link>
		<comments>http://mariusht.com/blog/2010/02/13/sending-messages-from-server-socket-to-client-sockets/#comments</comments>
		<pubDate>Sat, 13 Feb 2010 00:07:23 +0000</pubDate>
		<dc:creator>Mariush T.</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[AIR 2]]></category>
		<category><![CDATA[Flex 4]]></category>
		<category><![CDATA[ServerSocket]]></category>
		<category><![CDATA[Socket]]></category>

		<guid isPermaLink="false">http://mariusht.com/blog/?p=1857</guid>
		<description><![CDATA[In this example i want to show you how to send messages from server socket(AIR app) to client sockets(AIR apps). You can install all 3 applications on the same computer or ServerSocketDemo.air on the server(it could be your mac or pc) and SocketDemo.air on any other computer on your local area network(LAN).
NOTE: You will need [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft" style="border: 1px solid black;" src="http://mariusht.com/files/blog/server_socket/serverSocket.jpg" alt="" width="135" height="120" />In this example i want to show you how to send messages from server socket(AIR app) to client sockets(AIR apps). You can install all 3 applications on the same computer or <a href="http://mariusht.com/files/blog/server_socket/ServerSocketDemo.air">ServerSocketDemo.air</a> on the server(it could be your mac or pc) and <a href="http://mariusht.com/files/blog/server_socket/SocketDemo.air">SocketDemo.air</a> on any other computer on your local area network(LAN).</p>
<p><strong>NOTE:</strong> You will need AIR 2 BETA &#8211; <a href="http://labs.adobe.com/downloads/air2.html">Download the Runtime</a></p>
<p>Files: <a href="http://mariusht.com/files/blog/server_socket/ServerSocketDemo.air">ServerSocketDemo.air</a>, <a href="http://mariusht.com/files/blog/server_socket/SocketDemo.air">SocketDemo.air</a>, <a href="http://mariusht.com/files/blog/server_socket/SocketDemo2.air">SocketDemo2.air</a><br />
Source Codes: <a href="http://mariusht.com/files/blog/server_socket/ServerSocketDemo.mxml.html">ServerSocketDemo.mxml</a>, <a href="http://mariusht.com/files/blog/server_socket/SocketDemo.mxml.html">SocketDemo.mxml</a></p>
]]></content:encoded>
			<wfw:commentRss>http://mariusht.com/blog/2010/02/13/sending-messages-from-server-socket-to-client-sockets/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Custom Pipe Messages</title>
		<link>http://mariusht.com/blog/2010/01/25/custom-pipe-messages/</link>
		<comments>http://mariusht.com/blog/2010/01/25/custom-pipe-messages/#comments</comments>
		<pubDate>Mon, 25 Jan 2010 02:51:12 +0000</pubDate>
		<dc:creator>Mariush T.</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Multicore]]></category>
		<category><![CDATA[Pipe Message]]></category>
		<category><![CDATA[Pipes Utility]]></category>
		<category><![CDATA[PureMVC]]></category>

		<guid isPermaLink="false">http://mariusht.com/blog/?p=1831</guid>
		<description><![CDATA[Strongly typed messages are used to communicate between cores in PureMVC MultiCore application with Pipes Utility. Below is a simple example of a custom pipe message class, and a JunctionMediator using the custom message. Message names are defined in the message itself which makes the message handling very easy.
ContactMessage.as
package com.mariusht.contactmanager.common.messages
{
    import com.mariusht.contactmanager.common.model.vo.ContactVO;

 [...]]]></description>
			<content:encoded><![CDATA[<p>Strongly typed messages are used to communicate between cores in PureMVC MultiCore application with Pipes Utility. Below is a simple example of a custom pipe message class, and a JunctionMediator using the custom message. Message names are defined in the message itself which makes the message handling very easy.</p>
<p><span id="more-1831"></span>ContactMessage.as
<pre class="MXML"><span class="ActionScriptpackage">package</span> <span class="ActionScriptDefault_Text">com</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">mariusht</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">contactmanager</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">common</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">messages</span>
<span class="ActionScriptBracket/Brace">{</span>
    <span class="ActionScriptReserved">import</span> <span class="ActionScriptDefault_Text">com</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">mariusht</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">contactmanager</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">common</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">model</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">vo</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">ContactVO</span>;

    <span class="ActionScriptReserved">import</span> <span class="ActionScriptDefault_Text">org</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">puremvc</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">as3</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">multicore</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">utilities</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">pipes</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">messages</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">Message</span>;

    <span class="ActionScriptReserved">public</span> <span class="ActionScriptclass">class</span> <span class="ActionScriptDefault_Text">ContactMessage</span> <span class="ActionScriptReserved">extends</span> <span class="ActionScriptDefault_Text">Message</span>
    <span class="ActionScriptBracket/Brace">{</span>
        <span class="ActionScriptReserved">protected</span> <span class="ActionScriptReserved">static</span> <span class="ActionScriptReserved">const</span> <span class="ActionScriptDefault_Text">NAME</span>:<span class="ActionScriptDefault_Text">String</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptString">'ContactMessage'</span>;

        <span class="ActionScriptReserved">public</span> <span class="ActionScriptReserved">static</span> <span class="ActionScriptReserved">const</span> <span class="ActionScriptDefault_Text">ADD_CONTACT</span>:<span class="ActionScriptDefault_Text">String</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">NAME</span> <span class="ActionScriptOperator">+</span> <span class="ActionScriptString">'/message/contact/add'</span>;
        <span class="ActionScriptReserved">public</span> <span class="ActionScriptReserved">static</span> <span class="ActionScriptReserved">const</span> <span class="ActionScriptDefault_Text">CONTACT_ADDED</span>:<span class="ActionScriptDefault_Text">String</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">NAME</span> <span class="ActionScriptOperator">+</span> <span class="ActionScriptString">'/message/contact/added'</span>;
        <span class="ActionScriptReserved">public</span> <span class="ActionScriptReserved">static</span> <span class="ActionScriptReserved">const</span> <span class="ActionScriptDefault_Text">CONTACT_ADD_FAILED</span>:<span class="ActionScriptDefault_Text">String</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">NAME</span> <span class="ActionScriptOperator">+</span> <span class="ActionScriptString">'/message/contact/add/failed'</span>;

        <span class="ActionScriptReserved">public</span> <span class="ActionScriptReserved">static</span> <span class="ActionScriptReserved">const</span> <span class="ActionScriptDefault_Text">UPDATE_CONTACT</span>:<span class="ActionScriptDefault_Text">String</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">NAME</span> <span class="ActionScriptOperator">+</span> <span class="ActionScriptString">'/message/contact/update'</span>;
        <span class="ActionScriptReserved">public</span> <span class="ActionScriptReserved">static</span> <span class="ActionScriptReserved">const</span> <span class="ActionScriptDefault_Text">CONTACT_UPDATED</span>:<span class="ActionScriptDefault_Text">String</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">NAME</span> <span class="ActionScriptOperator">+</span> <span class="ActionScriptString">'/message/contact/updated'</span>;
        <span class="ActionScriptReserved">public</span> <span class="ActionScriptReserved">static</span> <span class="ActionScriptReserved">const</span> <span class="ActionScriptDefault_Text">CONTACT_UPDATE_FAILED</span>:<span class="ActionScriptDefault_Text">String</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">NAME</span> <span class="ActionScriptOperator">+</span> <span class="ActionScriptString">'/message/contact/update/failed'</span>;

        <span class="ActionScriptReserved">public</span> <span class="ActionScriptReserved">static</span> <span class="ActionScriptReserved">const</span> <span class="ActionScriptDefault_Text">REMOVE_CONTACT</span>:<span class="ActionScriptDefault_Text">String</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">NAME</span> <span class="ActionScriptOperator">+</span> <span class="ActionScriptString">'/message/contact/remove'</span>;
        <span class="ActionScriptReserved">public</span> <span class="ActionScriptReserved">static</span> <span class="ActionScriptReserved">const</span> <span class="ActionScriptDefault_Text">CONTACT_REMOVED</span>:<span class="ActionScriptDefault_Text">String</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">NAME</span> <span class="ActionScriptOperator">+</span> <span class="ActionScriptString">'/message/contact/removed'</span>;
        <span class="ActionScriptReserved">public</span> <span class="ActionScriptReserved">static</span> <span class="ActionScriptReserved">const</span> <span class="ActionScriptDefault_Text">CONTACT_REMOVE_FAILED</span>:<span class="ActionScriptDefault_Text">String</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">NAME</span> <span class="ActionScriptOperator">+</span> <span class="ActionScriptString">'/message/contact/remove/failed'</span>;

        <span class="ActionScriptReserved">public</span> <span class="ActionScriptfunction">function</span> <span class="ActionScriptDefault_Text">ContactMessage</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">type</span>:<span class="ActionScriptDefault_Text">String</span><span class="ActionScriptOperator">,</span> <span class="ActionScriptDefault_Text">contact</span>:<span class="ActionScriptDefault_Text">ContactVO</span><span class="ActionScriptOperator">=</span><span class="ActionScriptDefault_Text">nulll</span><span class="ActionScriptBracket/Brace">)</span>
        <span class="ActionScriptBracket/Brace">{</span>
            <span class="ActionScriptComment">// add headers if needed
</span>            <span class="ActionScriptReserved">super</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">type</span><span class="ActionScriptOperator">,</span> <span class="ActionScriptReserved">null</span><span class="ActionScriptOperator">,</span> <span class="ActionScriptDefault_Text">contact</span><span class="ActionScriptBracket/Brace">)</span>;
        <span class="ActionScriptBracket/Brace">}</span> 

        <span class="ActionScriptReserved">public</span> <span class="ActionScriptfunction">function</span> <span class="ActionScriptReserved">get</span> <span class="ActionScriptDefault_Text">contact</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptBracket/Brace">)</span>:<span class="ActionScriptDefault_Text">ContactVO</span>
        <span class="ActionScriptBracket/Brace">{</span>
            <span class="ActionScriptReserved">return</span> <span class="ActionScriptDefault_Text">body</span> <span class="ActionScriptReserved">as</span> <span class="ActionScriptDefault_Text">ContactVO</span>;
        <span class="ActionScriptBracket/Brace">}</span>
    <span class="ActionScriptBracket/Brace">}</span>
<span class="ActionScriptBracket/Brace">}</span></pre>
<p>JunctionMediator.as</p>
<pre class="MXML"><span class="ActionScriptOperator">...</span>
<span class="ActionScriptReserved">override</span> <span class="ActionScriptReserved">public</span> <span class="ActionScriptfunction">function</span> <span class="ActionScriptDefault_Text">handlePipeMessage</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">message</span>:<span class="ActionScriptDefault_Text">IPipeMessage</span><span class="ActionScriptBracket/Brace">)</span>:<span class="ActionScriptReserved">void</span>
<span class="ActionScriptBracket/Brace">{</span>
    <span class="ActionScriptReserved">switch</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">message</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">getType</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptBracket/Brace">)</span><span class="ActionScriptBracket/Brace">)</span>
    <span class="ActionScriptBracket/Brace">{</span>
        <span class="ActionScriptReserved">case</span> <span class="ActionScriptDefault_Text">ScreenMessage</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">GET</span>:
            <span class="ActionScriptComment">//
</span>            <span class="ActionScriptReserved">break</span>;
        <span class="ActionScriptReserved">case</span> <span class="ActionScriptDefault_Text">ContactMessage</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">CONTACT_ADDED</span>:
            <span class="ActionScriptDefault_Text">contactsProxy</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">addContact</span><span class="ActionScriptBracket/Brace">(</span> <span class="ActionScriptDefault_Text">ContactMessage</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">message</span><span class="ActionScriptBracket/Brace">)</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">contact</span> <span class="ActionScriptBracket/Brace">)</span>;
            <span class="ActionScriptReserved">break</span>;
        <span class="ActionScriptReserved">case</span> <span class="ActionScriptDefault_Text">ContactMessage</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">CONTACT_UPDATED</span>:
            <span class="ActionScriptDefault_Text">contactsProxy</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">updateContact</span><span class="ActionScriptBracket/Brace">(</span> <span class="ActionScriptDefault_Text">ContactMessage</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">message</span><span class="ActionScriptBracket/Brace">)</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">contact</span> <span class="ActionScriptBracket/Brace">)</span>;
            <span class="ActionScriptReserved">break</span>;
        <span class="ActionScriptReserved">case</span> <span class="ActionScriptDefault_Text">ContactMessage</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">CONTACT_REMOVED</span>:
            <span class="ActionScriptDefault_Text">contactsProxy</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">removeContact</span><span class="ActionScriptBracket/Brace">(</span> <span class="ActionScriptDefault_Text">ContactMessage</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">message</span><span class="ActionScriptBracket/Brace">)</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">contact</span> <span class="ActionScriptBracket/Brace">)</span>;
            <span class="ActionScriptReserved">break</span>;
        <span class="ActionScriptReserved">case</span> <span class="ActionScriptDefault_Text">ItemMessage</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">ITEM_ADDED</span>:
            <span class="ActionScriptDefault_Text">itemsProxy</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">addItem</span><span class="ActionScriptBracket/Brace">(</span> <span class="ActionScriptDefault_Text">ItemMessage</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">message</span><span class="ActionScriptBracket/Brace">)</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">item</span> <span class="ActionScriptBracket/Brace">)</span>;
            <span class="ActionScriptReserved">break</span>;
        <span class="ActionScriptReserved">case</span> <span class="ActionScriptDefault_Text">ItemMessage</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">ITEM_UPDATED</span>:
            <span class="ActionScriptDefault_Text">itemsProxy</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">updateItem</span><span class="ActionScriptBracket/Brace">(</span> <span class="ActionScriptDefault_Text">ItemMessage</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">message</span><span class="ActionScriptBracket/Brace">)</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">item</span> <span class="ActionScriptBracket/Brace">)</span>;
            <span class="ActionScriptReserved">break</span>;
        <span class="ActionScriptReserved">case</span> <span class="ActionScriptDefault_Text">ItemMessage</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">ITEM_REMOVED</span>:
            <span class="ActionScriptDefault_Text">itemsProxy</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">removeItem</span><span class="ActionScriptBracket/Brace">(</span> <span class="ActionScriptDefault_Text">ItemMessage</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">message</span><span class="ActionScriptBracket/Brace">)</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">item</span> <span class="ActionScriptBracket/Brace">)</span>;
            <span class="ActionScriptReserved">break</span>;
    <span class="ActionScriptBracket/Brace">}</span>
<span class="ActionScriptBracket/Brace">}</span>
<span class="ActionScriptOperator">...</span></pre>
]]></content:encoded>
			<wfw:commentRss>http://mariusht.com/blog/2010/01/25/custom-pipe-messages/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Export Data to Excel File</title>
		<link>http://mariusht.com/blog/2010/01/21/export-data-to-excel-file/</link>
		<comments>http://mariusht.com/blog/2010/01/21/export-data-to-excel-file/#comments</comments>
		<pubDate>Thu, 21 Jan 2010 16:40:07 +0000</pubDate>
		<dc:creator>Mariush T.</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[as3xls]]></category>
		<category><![CDATA[DataGrid]]></category>
		<category><![CDATA[FileReference]]></category>
		<category><![CDATA[Flex 4]]></category>

		<guid isPermaLink="false">http://mariusht.com/blog/?p=1813</guid>
		<description><![CDATA[In this example i want to show you how to write data to Excel file from a Flex application. I use as3xls library and FileReference.save() method in Flash Player 10.



]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft" style="border: 1px solid black;" src="http://mariusht.com/files/blog/save_as_xls/saveAsXls.jpg" alt="" width="135" height="120" />In this example i want to show you how to write data to Excel file from a Flex application. I use <a href="http://code.google.com/p/as3xls/">as3xls</a> library and FileReference.save() method in Flash Player 10.
<div style="float: right; margin: 45px 0 15px 5px;">
<input class="btn" type="button" value="View Demo" onClick="window.open('http://mariusht.com/files/blog/save_as_xls/bin-release/')"/>
<input class="btn" type="button" value="View Source" onClick="window.open('http://mariusht.com/files/blog/save_as_xls/bin-release/srcview/')"/></div>
]]></content:encoded>
			<wfw:commentRss>http://mariusht.com/blog/2010/01/21/export-data-to-excel-file/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Make async call from Flex/PureMVC application</title>
		<link>http://mariusht.com/blog/2010/01/20/make-async-call-from-flexpuremvc-application/</link>
		<comments>http://mariusht.com/blog/2010/01/20/make-async-call-from-flexpuremvc-application/#comments</comments>
		<pubDate>Wed, 20 Jan 2010 04:09:46 +0000</pubDate>
		<dc:creator>Mariush T.</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA['smart vo']]></category>
		<category><![CDATA[async proxy]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[PureMVC]]></category>

		<guid isPermaLink="false">http://mariusht.com/blog/?p=1779</guid>
		<description><![CDATA[In this example I want to show you how to make asynchronous call to a web service from Flex/PureMVC application.
You can learn: how to call a web service from Proxy, convert returned xml into &#8220;smart VO&#8217;s&#8221;, notify the rest of the application about new data.



]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft" style="border: 1px solid #333333;"src="http://mariusht.com/files/blog/flickr_feed/flickrFeed.jpg" alt="" width="135" height="120" />In this example I want to show you how to make asynchronous call to a web service from Flex/PureMVC application.<br />
You can learn: how to call a web service from Proxy, convert returned xml into &#8220;smart VO&#8217;s&#8221;, notify the rest of the application about new data.
<div style="float: right; margin: 5px 0 15px 5px;">
<input class="btn" type="button" value="View Demo" onClick="window.open('http://mariusht.com/files/blog/flickr_feed/bin-release/')"/>
<input class="btn" type="button" value="View Source" onClick="window.open('http://mariusht.com/files/blog/flickr_feed/bin-release/srcview/')"/></div>
]]></content:encoded>
			<wfw:commentRss>http://mariusht.com/blog/2010/01/20/make-async-call-from-flexpuremvc-application/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Setting cursor position at the end of a TextInput control</title>
		<link>http://mariusht.com/blog/2009/12/31/setting-cursor-position-at-the-end-of-a-textinput-control/</link>
		<comments>http://mariusht.com/blog/2009/12/31/setting-cursor-position-at-the-end-of-a-textinput-control/#comments</comments>
		<pubDate>Thu, 31 Dec 2009 19:17:57 +0000</pubDate>
		<dc:creator>Mariush T.</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Flex 4]]></category>
		<category><![CDATA[selectRange()]]></category>
		<category><![CDATA[setFocus()]]></category>
		<category><![CDATA[TextInput]]></category>

		<guid isPermaLink="false">http://mariusht.com/blog/?p=1768</guid>
		<description><![CDATA[Below code shows you how to set cursor position at the end of a TextInput control in Flex 4.
import mx.events.FlexEvent;

// Flex 4
private function creationComplete(event:FlexEvent):void
{
    textInput.selectRange(textInput.text.length, textInput.text.length);
    textInput.setFocus();
}
]]></description>
			<content:encoded><![CDATA[<p>Below code shows you how to set cursor position at the end of a TextInput control in Flex 4.</p>
<pre class="MXML"><span class="ActionScriptReserved">import</span> <span class="ActionScriptDefault_Text">mx</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">events</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">FlexEvent</span>;

<span class="ActionScriptComment">// Flex 4
</span><span class="ActionScriptReserved">private</span> <span class="ActionScriptfunction">function</span> <span class="ActionScriptDefault_Text">creationComplete</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">event</span>:<span class="ActionScriptDefault_Text">FlexEvent</span><span class="ActionScriptBracket/Brace">)</span>:<span class="ActionScriptReserved">void</span>
<span class="ActionScriptBracket/Brace">{</span>
    <span class="ActionScriptDefault_Text">textInput</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">selectRange</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">textInput</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">text</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">length</span><span class="ActionScriptOperator">,</span> <span class="ActionScriptDefault_Text">textInput</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">text</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">length</span><span class="ActionScriptBracket/Brace">)</span>;
    <span class="ActionScriptDefault_Text">textInput</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">setFocus</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptBracket/Brace">)</span>;
<span class="ActionScriptBracket/Brace">}</span></pre>
]]></content:encoded>
			<wfw:commentRss>http://mariusht.com/blog/2009/12/31/setting-cursor-position-at-the-end-of-a-textinput-control/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>RoundButtonSkin</title>
		<link>http://mariusht.com/blog/2009/12/15/roundbuttonskin/</link>
		<comments>http://mariusht.com/blog/2009/12/15/roundbuttonskin/#comments</comments>
		<pubDate>Tue, 15 Dec 2009 17:57:43 +0000</pubDate>
		<dc:creator>Mariush T.</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Button]]></category>
		<category><![CDATA[Ellipse]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[SparkSkin]]></category>

		<guid isPermaLink="false">http://mariusht.com/blog/?p=1618</guid>
		<description><![CDATA[I have created round button skin for spark button component. RoundButtonSkin has the same shadow, fill, fill lowlight, fill highlight and the border color as ButtonSkin provided by Adobe. A major difference between my skin and Adobe&#8217;s skin is that RoundButtonSkin has a different shape &#8211; Ellipse.
Feel free to use it in your projects.



]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft" style="border: 1px solid #333333;" src="http://mariusht.com/files/blog/round_button_skin/roundButtonSkin_thumb.jpg" alt="" width="135" height="120" />I have created round button skin for spark button component. RoundButtonSkin has the same shadow, fill, fill lowlight, fill highlight and the border color as ButtonSkin provided by Adobe. A major difference between my skin and Adobe&#8217;s skin is that RoundButtonSkin has a different shape &#8211; Ellipse.
<div style="padding-top:13px; float:left"><em><strong>Feel free to use it in your projects.</strong></em></div>
<div style="float: right; margin: 5px 0 15px 5px;">
<input class="btn" type="button" value="View Demo" onClick="window.open('http://mariusht.com/files/blog/round_button_skin/bin-release/')"/>
<input class="btn" type="button" value="View Source" onClick="window.open('http://mariusht.com/files/blog/round_button_skin/bin-release/srcview/')"/></div>
]]></content:encoded>
			<wfw:commentRss>http://mariusht.com/blog/2009/12/15/roundbuttonskin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Creating a custom application updater</title>
		<link>http://mariusht.com/blog/2009/12/08/creating-a-custom-application-updater/</link>
		<comments>http://mariusht.com/blog/2009/12/08/creating-a-custom-application-updater/#comments</comments>
		<pubDate>Tue, 08 Dec 2009 16:40:20 +0000</pubDate>
		<dc:creator>Mariush T.</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Adobe AIR]]></category>
		<category><![CDATA[application updater]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Updater UI]]></category>

		<guid isPermaLink="false">http://mariusht.com/blog/?p=1548</guid>
		<description><![CDATA[In above image you can see the custom application updater interface I have created for my NoteList application. You would see this updater interface only if updated application is available for download. Clicking the &#8216;Download and Upload&#8217; button downloads updated .air file and updates current application.

Below you can see the source code for updating an [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft" style="border: 1px solid #CCCCCC;" src="http://mariusht.com/files/blog/custom_application_updater/customUpdater.jpg" alt="" width="656" height="113" />In above image you can see the custom application updater interface I have created for my <a href="http://mariusht.com/products/notelist/">NoteList</a> application. You would see this updater interface only if updated application is available for download. Clicking the &#8216;Download and Upload&#8217; button downloads updated .air file and updates current application.<br />
<span id="more-1548"></span><br />
Below you can see the source code for updating an AIR app. The following code shows you how to:<br />
1. Load the update descriptor file.</p>
<pre class="MXML"><span class="ActionScriptComment">// load the update-descriptor
</span><span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">loader</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">URLLoader</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptReserved">new</span> <span class="ActionScriptDefault_Text">URLLoader</span>;
<span class="ActionScriptDefault_Text">loader</span>.<span class="ActionScriptDefault_Text">addEventListener</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">Event</span>.<span class="ActionScriptDefault_Text">COMPLETE</span>, <span class="ActionScriptDefault_Text">onLoadComplete</span><span class="ActionScriptBracket/Brace">)</span>;
<span class="ActionScriptDefault_Text">loader</span>.<span class="ActionScriptDefault_Text">load</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptReserved">new</span> <span class="ActionScriptDefault_Text">URLRequest</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptString">&apos;http://mariusht.com/files/products/notelist/update.xml&apos;</span><span class="ActionScriptBracket/Brace">))</span>;</pre>
<p>2. Check and see if a user has the latest version of an AIR app installed.</p>
<pre class="MXML"><span class="ActionScriptReserved">private</span> <span class="ActionScriptfunction">function</span> <span class="ActionScriptDefault_Text">onLoadComplete</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">event</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Event</span><span class="ActionScriptBracket/Brace">)</span><span class="ActionScriptOperator">:</span><span class="ActionScriptReserved">void</span>
<span class="ActionScriptBracket/Brace">{</span>
    <span class="ActionScriptComment">// ignore xml declaration
</span>    <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">str</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">String</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">URLLoader</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">event</span>.<span class="ActionScriptDefault_Text">target</span><span class="ActionScriptBracket/Brace">)</span>.<span class="ActionScriptDefault_Text">data</span> <span class="ActionScriptReserved">as</span> <span class="ActionScriptDefault_Text">String</span>;
    <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">index</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">int</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">str</span>.<span class="ActionScriptDefault_Text">indexOf</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptString">&apos;&lt;update&apos;</span><span class="ActionScriptBracket/Brace">)</span>;
    <span class="ActionScriptDefault_Text">str</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">str</span>.<span class="ActionScriptDefault_Text">substr</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">index</span>, <span class="ActionScriptDefault_Text">str</span>.<span class="ActionScriptDefault_Text">length</span><span class="ActionScriptBracket/Brace">)</span>;

    <span class="ActionScriptComment">// convert String to XML
</span>    <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">remoteAppXML</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">XML</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">XML</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">str</span><span class="ActionScriptBracket/Brace">)</span>;
    <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">ns</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Namespace</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">remoteAppXML</span>.<span class="ActionScriptDefault_Text">namespace</span><span class="ActionScriptBracket/Brace">()</span>;

    <span class="ActionScriptComment">// get new version number
</span>    <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">version</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">String</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">remoteAppXML</span>.<span class="ActionScriptDefault_Text">ns</span><span class="ActionScriptOperator">::</span><span class="ActionScriptDefault_Text">version</span>;

    <span class="ActionScriptComment">// get current version number
</span>    <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">appXML</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">XML</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">NativeApplication</span>.<span class="ActionScriptDefault_Text">nativeApplication</span>.<span class="ActionScriptDefault_Text">applicationDescriptor</span>;
    <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">ns</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Namespace</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">appXML</span>.<span class="ActionScriptDefault_Text">namespace</span><span class="ActionScriptBracket/Brace">()</span>;
    <span class="ActionScriptDefault_Text">currentVersion</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">appXML</span>.<span class="ActionScriptDefault_Text">ns</span><span class="ActionScriptOperator">::</span><span class="ActionScriptDefault_Text">version</span>;

    <span class="ActionScriptReserved">if</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">currentVersion</span> <span class="ActionScriptOperator">!=</span> <span class="ActionScriptDefault_Text">version</span><span class="ActionScriptBracket/Brace">)</span>
    <span class="ActionScriptBracket/Brace">{</span>
        <span class="ActionScriptComment">// download AIR file
</span>    <span class="ActionScriptBracket/Brace">}</span>
<span class="ActionScriptBracket/Brace">}</span></pre>
<p>3. Download and save the AIR file. Don&#8217;t forget to call Updater.update() function.</p>
<pre class="MXML"><span class="ActionScriptReserved">public</span> <span class="ActionScriptclass">class</span> <span class="ActionScriptDefault_Text">UpdateAppCommand</span> <span class="ActionScriptReserved">extends</span> <span class="ActionScriptDefault_Text">SimpleCommand</span> <span class="ActionScriptReserved">implements</span> <span class="ActionScriptDefault_Text">ICommand</span>
<span class="ActionScriptBracket/Brace">{</span>
    <span class="ActionScriptReserved">override</span> <span class="ActionScriptReserved">public</span> <span class="ActionScriptfunction">function</span> <span class="ActionScriptDefault_Text">execute</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">note</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">INotification</span><span class="ActionScriptBracket/Brace">)</span><span class="ActionScriptOperator">:</span><span class="ActionScriptReserved">void</span>
    <span class="ActionScriptBracket/Brace">{</span>
        <span class="ActionScriptComment">// download updated .air file
</span>        <span class="ActionScriptDefault_Text">urlStream</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptReserved">new</span> <span class="ActionScriptDefault_Text">URLStream</span><span class="ActionScriptBracket/Brace">()</span>;
        <span class="ActionScriptDefault_Text">fileData</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptReserved">new</span> <span class="ActionScriptDefault_Text">ByteArray</span><span class="ActionScriptBracket/Brace">()</span>;
        <span class="ActionScriptDefault_Text">urlStream</span>.<span class="ActionScriptDefault_Text">addEventListener</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">Event</span>.<span class="ActionScriptDefault_Text">COMPLETE</span>, <span class="ActionScriptDefault_Text">loaded</span><span class="ActionScriptBracket/Brace">)</span>;
        <span class="ActionScriptDefault_Text">urlStream</span>.<span class="ActionScriptDefault_Text">load</span><span class="ActionScriptBracket/Brace">(</span>
            <span class="ActionScriptReserved">new</span> <span class="ActionScriptDefault_Text">URLRequest</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptString">&apos;http://mariusht.com/files/products/notelist/NoteList.air&apos;</span><span class="ActionScriptBracket/Brace">))</span>;
    <span class="ActionScriptBracket/Brace">}</span> 

    <span class="ActionScriptReserved">private</span> <span class="ActionScriptfunction">function</span> <span class="ActionScriptDefault_Text">loaded</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">event</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Event</span><span class="ActionScriptBracket/Brace">)</span><span class="ActionScriptOperator">:</span><span class="ActionScriptReserved">void</span>
    <span class="ActionScriptBracket/Brace">{</span>
        <span class="ActionScriptDefault_Text">urlStream</span>.<span class="ActionScriptDefault_Text">readBytes</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">fileData</span>, 0, <span class="ActionScriptDefault_Text">urlStream</span>.<span class="ActionScriptDefault_Text">bytesAvailable</span><span class="ActionScriptBracket/Brace">)</span>;
        <span class="ActionScriptDefault_Text">writeAirFile</span><span class="ActionScriptBracket/Brace">()</span>;
    <span class="ActionScriptBracket/Brace">}</span> 

    <span class="ActionScriptReserved">private</span> <span class="ActionScriptfunction">function</span> <span class="ActionScriptDefault_Text">writeAirFile</span><span class="ActionScriptBracket/Brace">()</span><span class="ActionScriptOperator">:</span><span class="ActionScriptReserved">void</span>
    <span class="ActionScriptBracket/Brace">{</span>
        <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">file</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">File</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">File</span>.<span class="ActionScriptDefault_Text">applicationStorageDirectory</span>.<span class="ActionScriptDefault_Text">resolvePath</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptString">&apos;NoteList.air&apos;</span><span class="ActionScriptBracket/Brace">)</span>;
        <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">fileStream</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">FileStream</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptReserved">new</span> <span class="ActionScriptDefault_Text">FileStream</span>;
        <span class="ActionScriptDefault_Text">fileStream</span>.<span class="ActionScriptDefault_Text">open</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">file</span>, <span class="ActionScriptDefault_Text">FileMode</span>.<span class="ActionScriptDefault_Text">WRITE</span><span class="ActionScriptBracket/Brace">)</span>;
        <span class="ActionScriptDefault_Text">fileStream</span>.<span class="ActionScriptDefault_Text">writeBytes</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">fileData</span>, 0, <span class="ActionScriptDefault_Text">fileData</span>.<span class="ActionScriptDefault_Text">length</span><span class="ActionScriptBracket/Brace">)</span>;
        <span class="ActionScriptDefault_Text">fileStream</span>.<span class="ActionScriptDefault_Text">close</span><span class="ActionScriptBracket/Brace">()</span>;

        <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">versionProxy</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">VersionProxy</span> <span class="ActionScriptOperator">=</span>
            <span class="ActionScriptDefault_Text">facade</span>.<span class="ActionScriptDefault_Text">retrieveProxy</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">VersionProxy</span>.<span class="ActionScriptDefault_Text">NAME</span><span class="ActionScriptBracket/Brace">)</span> <span class="ActionScriptReserved">as</span> <span class="ActionScriptDefault_Text">VersionProxy</span>;
        <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">updater</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">Updater</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptReserved">new</span> <span class="ActionScriptDefault_Text">Updater</span>;
        <span class="ActionScriptDefault_Text">updater</span>.<span class="ActionScriptDefault_Text">update</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">file</span>, <span class="ActionScriptDefault_Text">versionProxy</span>.<span class="ActionScriptDefault_Text">version</span><span class="ActionScriptBracket/Brace">)</span>;
    <span class="ActionScriptBracket/Brace">}</span> 

    <span class="ActionScriptReserved">private</span> <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">urlStream</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">URLStream</span>;
    <span class="ActionScriptReserved">private</span> <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">fileData</span><span class="ActionScriptOperator">:</span><span class="ActionScriptDefault_Text">ByteArray</span>;</pre>
<p>Related Links:<br />
<a href="http://help.adobe.com/en_US/AIR/1.5/devappsflex/WS5b3ccc516d4fbf351e63e3d118666ade46-7ff2.html">Updating AIR applications (Adobe AIR 1.5 LiveDocs)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://mariusht.com/blog/2009/12/08/creating-a-custom-application-updater/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Simple Notes Manager</title>
		<link>http://mariusht.com/blog/2009/12/06/simple-notes-manager/</link>
		<comments>http://mariusht.com/blog/2009/12/06/simple-notes-manager/#comments</comments>
		<pubDate>Sun, 06 Dec 2009 19:58:39 +0000</pubDate>
		<dc:creator>Mariush T.</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://mariusht.com/blog/?p=1539</guid>
		<description><![CDATA[Let me introduce to you application I have built for myself &#8211; NoteList. It is an Adobe Air app which allows you to manage notes in a simple efficient way. I would say &#8220;it is a notepad with a list of notes(text files)&#8221;. The application has simple interface: &#8220;+&#8221; button (add note), &#8220;-&#8221; button (remove [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft" style="border: 1px solid #CCCCCC;" src="http://mariusht.com/files/blog/simple_notes_manager/notelist.jpg" alt="" width="656" height="519" />Let me introduce to you application I have built for myself &#8211; NoteList. It is an Adobe Air app which allows you to manage notes in a simple efficient way. I would say &#8220;it is a notepad with a list of notes(text files)&#8221;. The application has simple interface: &#8220;+&#8221; button (add note), &#8220;-&#8221; button (remove note), sidebar and text area.</p>
<p>I will be happy to tell you that i have been using this application quite often.</p>
<p>You can install application from here: <a href="http://mariusht.com/products/notelist/">NoteList</a></p>
]]></content:encoded>
			<wfw:commentRss>http://mariusht.com/blog/2009/12/06/simple-notes-manager/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Transmitting JSON from PHP to Flex</title>
		<link>http://mariusht.com/blog/2009/10/24/transmitting-json-from-php-to-flex/</link>
		<comments>http://mariusht.com/blog/2009/10/24/transmitting-json-from-php-to-flex/#comments</comments>
		<pubDate>Sat, 24 Oct 2009 20:03:29 +0000</pubDate>
		<dc:creator>Mariush T.</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[httpService]]></category>
		<category><![CDATA[json]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://mariusht.com/blog/?p=1487</guid>
		<description><![CDATA[Learn how to create JSON(JavaScript Object Notation) with PHP and display in Flex application.




&#60;?xml version="1.0" encoding="utf-8"?&#62;
&#60;s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
               xmlns:s="library://ns.adobe.com/flex/spark"
               xmlns:mx="library://ns.adobe.com/flex/halo"
         [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft" style="border: 1px solid #666;" src="http://mariusht.com/files/blog/jsonToFlex/json.jpg" alt="" width="150" height="90" />Learn how to create JSON(JavaScript Object Notation) with PHP and display in Flex application.<br />
<br/><br/><br/><span id="more-1487"></span></p>
<hr />
<p><embed id="Json" type="application/x-shockwave-flash" width="100%" height="300" src="http://mariusht.com/files/blog/jsonToFlex/bin-release/Json.swf" allowfullscreen="true" allowscriptaccess="sameDomain" bgcolor="#ffffff" quality="high"></embed></p>
<hr />
<pre class="MXML"><span class="MXMLProcessing_Instruction">&lt;?xml version="1.0" encoding="utf-8"?&gt;</span>
<span class="MXMLComponent_Tag">&lt;s:Application</span><span class="MXMLDefault_Text"> xmlns:fx="</span><span class="MXMLString">http://ns.adobe.com/mxml/2009</span><span class="MXMLDefault_Text">"
               xmlns:s="</span><span class="MXMLString">library://ns.adobe.com/flex/spark</span><span class="MXMLDefault_Text">"
               xmlns:mx="</span><span class="MXMLString">library://ns.adobe.com/flex/halo</span><span class="MXMLDefault_Text">"
               viewSourceURL="</span><span class="MXMLString">srcview/index.html</span><span class="MXMLDefault_Text">"</span><span class="MXMLComponent_Tag">&gt;</span> 

    <span class="MXMLSpecial_Tag">&lt;fx:Script&gt;</span>
        &lt;![CDATA[
            import com.adobe.serialization.json.JSON;

            import mx.rpc.events.ResultEvent;
            import mx.rpc.http.HTTPService;

            private function getCd():void
            {
                var httpService:HTTPService = new HTTPService();
                httpService.url = <span class="ActionScriptString">'assets/cd.php?getCd'</span>;
                <span class="ActionScriptDefault_Text">httpService</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">useProxy</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptReserved">false</span>;
                <span class="ActionScriptDefault_Text">httpService</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">method</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">URLRequestMethod</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">POST</span>;
                <span class="ActionScriptDefault_Text">httpService</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">resultFormat</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">HTTPService</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">RESULT_FORMAT_TEXT</span>;
                <span class="ActionScriptDefault_Text">httpService</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">addEventListener</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">ResultEvent</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">RESULT</span><span class="ActionScriptOperator">,</span> <span class="ActionScriptDefault_Text">jsonResultHandler</span><span class="ActionScriptBracket/Brace">)</span>;
                <span class="ActionScriptDefault_Text">httpService</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">send</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptBracket/Brace">)</span>;
            <span class="ActionScriptBracket/Brace">}</span> 

            <span class="ActionScriptReserved">private</span> <span class="ActionScriptfunction">function</span> <span class="ActionScriptDefault_Text">jsonResultHandler</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">event</span>:<span class="ActionScriptDefault_Text">ResultEvent</span><span class="ActionScriptBracket/Brace">)</span>:<span class="ActionScriptReserved">void</span>
            <span class="ActionScriptBracket/Brace">{</span>
                <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">rawData</span>:<span class="ActionScriptDefault_Text">String</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">String</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">event</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">result</span><span class="ActionScriptBracket/Brace">)</span>;
                <span class="ActionScriptvar">var</span> <span class="ActionScriptDefault_Text">cd</span>:<span class="ActionScriptDefault_Text">Object</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">JSON</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">decode</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptDefault_Text">rawData</span><span class="ActionScriptBracket/Brace">)</span>;
                <span class="ActionScriptDefault_Text">titleInput</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">text</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">cd</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">title</span>;
                <span class="ActionScriptDefault_Text">artistInput</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">text</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">cd</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">artist</span>;
                <span class="ActionScriptDefault_Text">countryInput</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">text</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">cd</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">country</span>;
                <span class="ActionScriptDefault_Text">companyInput</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">text</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">cd</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">company</span>;
                <span class="ActionScriptDefault_Text">priceInput</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">text</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">cd</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">price</span>;
                <span class="ActionScriptDefault_Text">yearInput</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">text</span> <span class="ActionScriptOperator">=</span> <span class="ActionScriptDefault_Text">cd</span><span class="ActionScriptOperator">.</span><span class="ActionScriptDefault_Text">year</span>;
            <span class="ActionScriptBracket/Brace">}</span>
        <span class="ActionScriptBracket/Brace">]</span><span class="ActionScriptBracket/Brace">]</span><span class="ActionScriptOperator">&gt;</span>
    <span class="MXMLSpecial_Tag">&lt;/fx:Script&gt;</span> 

    <span class="MXMLSpecial_Tag">&lt;fx:Declarations&gt;</span>
        <span class="MXMLComment">&lt;!--</span><span class="MXMLComment"> Place non-visual elements (e.g., services, value objects) here </span><span class="MXMLComment">--&gt;</span>
    <span class="MXMLSpecial_Tag">&lt;/fx:Declarations&gt;</span>
    <span class="MXMLComponent_Tag">&lt;mx:Form</span><span class="MXMLDefault_Text"> x="</span><span class="MXMLString">19</span><span class="MXMLDefault_Text">" y="</span><span class="MXMLString">22</span><span class="MXMLDefault_Text">"</span><span class="MXMLComponent_Tag">&gt;</span>
        <span class="MXMLComponent_Tag">&lt;mx:FormItem</span><span class="MXMLDefault_Text"> label="</span><span class="MXMLString">title</span><span class="MXMLDefault_Text">"</span><span class="MXMLComponent_Tag">&gt;</span>
            <span class="MXMLComponent_Tag">&lt;s:TextInput</span><span class="MXMLDefault_Text"> id="</span><span class="MXMLString">titleInput</span><span class="MXMLDefault_Text">"</span><span class="MXMLComponent_Tag">/&gt;</span>
        <span class="MXMLComponent_Tag">&lt;/mx:FormItem&gt;</span>
        <span class="MXMLComponent_Tag">&lt;mx:FormItem</span><span class="MXMLDefault_Text"> label="</span><span class="MXMLString">artist</span><span class="MXMLDefault_Text">"</span><span class="MXMLComponent_Tag">&gt;</span>
            <span class="MXMLComponent_Tag">&lt;s:TextInput</span><span class="MXMLDefault_Text"> id="</span><span class="MXMLString">artistInput</span><span class="MXMLDefault_Text">"</span><span class="MXMLComponent_Tag">/&gt;</span>
        <span class="MXMLComponent_Tag">&lt;/mx:FormItem&gt;</span>
        <span class="MXMLComponent_Tag">&lt;mx:FormItem</span><span class="MXMLDefault_Text"> label="</span><span class="MXMLString">country</span><span class="MXMLDefault_Text">"</span><span class="MXMLComponent_Tag">&gt;</span>
            <span class="MXMLComponent_Tag">&lt;s:TextInput</span><span class="MXMLDefault_Text"> id="</span><span class="MXMLString">countryInput</span><span class="MXMLDefault_Text">"</span><span class="MXMLComponent_Tag">/&gt;</span>
        <span class="MXMLComponent_Tag">&lt;/mx:FormItem&gt;</span>
        <span class="MXMLComponent_Tag">&lt;mx:FormItem</span><span class="MXMLDefault_Text"> label="</span><span class="MXMLString">company</span><span class="MXMLDefault_Text">"</span><span class="MXMLComponent_Tag">&gt;</span>
            <span class="MXMLComponent_Tag">&lt;s:TextInput</span><span class="MXMLDefault_Text"> id="</span><span class="MXMLString">companyInput</span><span class="MXMLDefault_Text">"</span><span class="MXMLComponent_Tag">/&gt;</span>
        <span class="MXMLComponent_Tag">&lt;/mx:FormItem&gt;</span>
        <span class="MXMLComponent_Tag">&lt;mx:FormItem</span><span class="MXMLDefault_Text"> label="</span><span class="MXMLString">price</span><span class="MXMLDefault_Text">"</span><span class="MXMLComponent_Tag">&gt;</span>
            <span class="MXMLComponent_Tag">&lt;s:TextInput</span><span class="MXMLDefault_Text"> id="</span><span class="MXMLString">priceInput</span><span class="MXMLDefault_Text">"</span><span class="MXMLComponent_Tag">/&gt;</span>
        <span class="MXMLComponent_Tag">&lt;/mx:FormItem&gt;</span>
        <span class="MXMLComponent_Tag">&lt;mx:FormItem</span><span class="MXMLDefault_Text"> label="</span><span class="MXMLString">year</span><span class="MXMLDefault_Text">"</span><span class="MXMLComponent_Tag">&gt;</span>
            <span class="MXMLComponent_Tag">&lt;s:TextInput</span><span class="MXMLDefault_Text"> id="</span><span class="MXMLString">yearInput</span><span class="MXMLDefault_Text">"</span><span class="MXMLComponent_Tag">/&gt;</span>
        <span class="MXMLComponent_Tag">&lt;/mx:FormItem&gt;</span>
    <span class="MXMLComponent_Tag">&lt;/mx:Form&gt;</span>
    <span class="MXMLComponent_Tag">&lt;s:Button</span><span class="MXMLDefault_Text"> x="</span><span class="MXMLString">19</span><span class="MXMLDefault_Text">" y="</span><span class="MXMLString">224</span><span class="MXMLDefault_Text">" label="</span><span class="MXMLString">Get JSON Object</span><span class="MXMLDefault_Text">" click="</span><span class="ActionScriptDefault_Text">getCd</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptBracket/Brace">)</span><span class="MXMLDefault_Text">"</span><span class="MXMLComponent_Tag">/&gt;</span>
<span class="MXMLComponent_Tag">&lt;/s:Application&gt;</span></pre>
<p>PHP script: </p>
<pre class="MXML"><span style="color: #000000"><span style="color: #0000BB">&lt;?php

&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">class&nbsp;</span><span style="color: #0000BB">Cd
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;</span><span style="color: #0000BB">$title</span><span style="color: #007700">;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;</span><span style="color: #0000BB">$artist</span><span style="color: #007700">;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;</span><span style="color: #0000BB">$country</span><span style="color: #007700">;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;</span><span style="color: #0000BB">$company</span><span style="color: #007700">;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;</span><span style="color: #0000BB">$price</span><span style="color: #007700">;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;</span><span style="color: #0000BB">$year</span><span style="color: #007700">;
&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;if(isset(</span><span style="color: #0000BB">$_GET</span><span style="color: #007700">[</span><span style="color: #DD0000">'getCd'</span><span style="color: #007700">]))
&nbsp;&nbsp;&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$cd&nbsp;</span><span style="color: #007700">=&nbsp;new&nbsp;</span><span style="color: #0000BB">Cd</span><span style="color: #007700">();
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$cd</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">title&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">'Big&nbsp;Willie&nbsp;style'</span><span style="color: #007700">;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$cd</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">artist&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">'Will&nbsp;Smith'</span><span style="color: #007700">;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$cd</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">country&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">'USA'</span><span style="color: #007700">;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$cd</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">company&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">'Columbia'</span><span style="color: #007700">;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$cd</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">price&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">'$9.90'</span><span style="color: #007700">;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$cd</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">year&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">'1997'</span><span style="color: #007700">;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #0000BB">json_encode</span><span style="color: #007700">(</span><span style="color: #0000BB">$cd</span><span style="color: #007700">);
&nbsp;&nbsp;&nbsp;&nbsp;}
</span><span style="color: #0000BB">?&gt;
</span></span></pre>
]]></content:encoded>
			<wfw:commentRss>http://mariusht.com/blog/2009/10/24/transmitting-json-from-php-to-flex/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
