<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" version="2.0">

<channel>
	<title>Flex i AIR</title>
	
	<link>http://flex.imrahil.com</link>
	<description>Wiadomości ze świata RIA oraz moje zmagania z programowaniem w Flex/AIR</description>
	<lastBuildDate>Fri, 18 Jun 2010 20:40:18 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/Flex_and_Air" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="flex_and_air" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Flex SDK + Flash Player 10</title>
		<link>http://flex.imrahil.com/2009/10/24/flex-sdk-flash-player-10/</link>
		<comments>http://flex.imrahil.com/2009/10/24/flex-sdk-flash-player-10/#comments</comments>
		<pubDate>Sat, 24 Oct 2009 11:05:50 +0000</pubDate>
		<dc:creator>Jarek</dc:creator>
				<category><![CDATA[AIR]]></category>
		<category><![CDATA[AS 3.0]]></category>
		<category><![CDATA[Flash Player]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Flex SDK]]></category>
		<category><![CDATA[Zapamiętać]]></category>

		<guid isPermaLink="false">http://flex.imrahil.com/?p=385</guid>
		<description><![CDATA[Wpis w związku z powtarzającymi się pytaniami na różnych forach. Jak włączyć w Flex Builderze kompilowanie dla Flash Playera 10 (czyli mieć dostęp do klasy Vector i metody &#8222;save&#8221; w klasie FileReference): zakładam, że mamy nowe SDK (najlepiej 3.4) w właściwościach projektu wybieramy zakładkę &#8222;Flex Compiler&#8221; i&#8230; wpisujemy w &#8222;Additional compiler arguments&#8221; -target-player=10.0.0 . LUB [...]]]></description>
			<content:encoded><![CDATA[<p>Wpis w związku z powtarzającymi się pytaniami na różnych forach.</p>
<p><strong>Jak włączyć w <a href="http://www.adobe.com/products/flex/"  class="alinks_links" onclick="return alinks_click(this);" title="Adobe Flex"  rel="external">Flex</a> Builderze kompilowanie dla Flash Playera 10 (czyli mieć dostęp do klasy Vector i metody &#8222;save&#8221; w klasie FileReference):</strong></p>
<ol>
<li>zakładam, że mamy nowe SDK (najlepiej 3.4)</li>
<li>w właściwościach projektu wybieramy zakładkę &#8222;Flex Compiler&#8221; i&#8230;
<ul>
<li>wpisujemy w <em>&#8222;Additional compiler arguments&#8221;</em> <strong>-target-player=10.0.0 </strong><br />
<span style="color: #ffffff;">.</span><br />
<a href="http://flex.imrahil.com/files/2009/10/player10_1.jpg" rel="lightbox[385]"><img class="alignnone size-thumbnail wp-image-387" title="player10_1" src="http://flex.imrahil.com/files/2009/10/player10_1-150x150.jpg" alt="player10_1" width="150" height="150" /></a></li>
</ul>
<p><strong>LUB</strong></p>
<ul>
<li>zaznaczamy <em>&#8222;Require Flash Player version:&#8221;</em> i podajemy wartości: 10 0 0<br />
<span style="color: #ffffff;">.</span><br />
<a href="http://flex.imrahil.com/files/2009/10/player10_2.jpg" rel="lightbox[385]"><img class="alignnone size-thumbnail wp-image-386" title="player10_2" src="http://flex.imrahil.com/files/2009/10/player10_2-150x150.jpg" alt="player10_2" width="150" height="150" /></a></li>
</ul>
</li>
</ol>
<p>Więcej informacji na stronach <a href="http://www.adobe.com/"  class="alinks_links" onclick="return alinks_click(this);" title="Adobe"  rel="external">Adobe</a> &#8211; <a href="http://opensource.adobe.com/wiki/display/flexsdk/Targeting+Flash+Player+10" target="_blank">Targeting Flash Player 10</a></p>
<img src="http://feeds.feedburner.com/~r/Flex_and_Air/~4/DpVxnEGb7lI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://flex.imrahil.com/2009/10/24/flex-sdk-flash-player-10/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Adobe MAX 2009</title>
		<link>http://flex.imrahil.com/2009/09/29/adobe-max-2009/</link>
		<comments>http://flex.imrahil.com/2009/09/29/adobe-max-2009/#comments</comments>
		<pubDate>Tue, 29 Sep 2009 19:40:06 +0000</pubDate>
		<dc:creator>Jarek</dc:creator>
				<category><![CDATA[Adobe MAX]]></category>
		<category><![CDATA[Wydarzenia]]></category>

		<guid isPermaLink="false">http://flex.imrahil.com/?p=383</guid>
		<description><![CDATA[W związku z tym, że tegoroczne Adobe MAX rusza w najbliższą niedzielę można już głosować na MAX Awards (nagrody dla najlepszych aplikacji RIA) oraz rejestrować się na transmisję online z keynote (w tym roku w pełni na żywo).]]></description>
			<content:encoded><![CDATA[<p>W związku z tym, że tegoroczne <a href="http://max.adobe.com/" target="_blank">Adobe MAX</a> rusza w najbliższą niedzielę można już <a href="http://max.adobe.com/awards/finalists/" target="_blank">głosować na MAX Awards</a> (nagrody dla najlepszych aplikacji RIA) oraz <a href="http://max.adobe.com/online/" target="_blank">rejestrować się</a> na transmisję online z keynote (w tym roku w pełni na żywo).</p>
<img src="http://feeds.feedburner.com/~r/Flex_and_Air/~4/zv8H6RhAoy8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://flex.imrahil.com/2009/09/29/adobe-max-2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Wysyłanie formularzy multipart/form-data</title>
		<link>http://flex.imrahil.com/2009/09/08/wysylanie-formularzy-multipartform-data/</link>
		<comments>http://flex.imrahil.com/2009/09/08/wysylanie-formularzy-multipartform-data/#comments</comments>
		<pubDate>Tue, 08 Sep 2009 13:08:04 +0000</pubDate>
		<dc:creator>Jarek</dc:creator>
				<category><![CDATA[AS 3.0]]></category>
		<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://flex.imrahil.com/?p=149</guid>
		<description><![CDATA[Trafiłem ostatnio na dość dziwny problem. Potrzebowałem mianowicie wysłać z poziomu Flexa dane formularza, które po stronie serwera zostałyby odebrane przez PHP (lub inny język server-side). Jednak cały kłopot polegał na tym, że: dane te miały wykorzystać istniejący już kod obsługiwany przez formularz w HTML&#8217;u &#8211; czyli niejako miałem się podszyć pod zwykłą stronę www, [...]]]></description>
			<content:encoded><![CDATA[<p>Trafiłem ostatnio na dość dziwny problem. Potrzebowałem mianowicie wysłać z poziomu Flexa dane formularza, które po stronie serwera zostałyby odebrane przez PHP (lub inny język server-side).</p>
<p>Jednak cały kłopot polegał na tym, że:</p>
<ul>
<li> dane te miały wykorzystać istniejący już kod obsługiwany przez formularz w HTML&#8217;u &#8211; czyli niejako miałem się podszyć pod zwykłą stronę www, nie wykorzystując żadnych udogodnień typu AMF, Webservice czy RemoteObject,</li>
<li>chciałem wysłać jednocześnie dane tekstowe (np. dane rejestracyjne) oraz binarne (np. obrazki JPG), bez limitu ilości,</li>
<li>obrazki nie były pobierane z dysku użytkownika przez FileReference.browse, ale tworzone w locie jako zrzuty komponentów przez ImageSnapshot i trzymane w pamięci w zmiennych typu ByteArray.</li>
</ul>
<p>Jedyne co udało mi się znaleźć to <a href="http://www.neerfri.com/2007/12/flex-multipartform-data-post-request.html" target="_blank">artykuł na blogu Neer&#8217;a Friedman&#8217;a</a> i jego <a href="http://code.google.com/p/multipart-loader/" target="_blank">projekt na Google Code</a>. Był to dobry początek do zmian&#8230;<br />
BTW: niejaki Mike Stead, którego komentarz widnieje pod wpisem Neer&#8217;a też zajmował się tym problemem i zdaje się, że nawet go jakoś elegancko rozwiązał, jednak jego stronka padła kompletnie i nie ma jej nawet w Google Cache&#8230;</p>
<p>Wywaliłem kod odpowiedzialny za używanie Socketów zamieniając go na zwykłego URLLoader&#8217;a oraz troche zrefaktoryzowałem kod (uporzadkowałem). Tym sposobem pojawiła się biblioteka MultipartRequestLoader <img src='http://flex.imrahil.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><a href="http://flex.imrahil.com/work/multipart_loader/multipart_loader_example.html" target="_blank">Przykładowa aplikacja</a> (wraz z kodem źródłówym pod prawym klikiem myszki), a tutaj kod biblioteki: <a href="http://flex.imrahil.com/work/multipart_loader/multipart_loader_imrahil.zip" target="_blank">multipart_loader_imrahil.zip</a></p>
<p>Kod przykładowej aplikacji:</p>
<div class="codecolorer-container mxml default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;height:500px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br />40<br />41<br />42<br />43<br />44<br />45<br />46<br />47<br />48<br />49<br />50<br />51<br />52<br />53<br />54<br /></div></td><td><div class="mxml codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000;"><span style="color: #7400FF;">&lt;mx:Application</span> xmlns:mx=<span style="color: #ff0000;">&quot;http://www.adobe.com/2006/mxml&quot;</span> layout=<span style="color: #ff0000;">&quot;absolute&quot;</span> creationComplete=<span style="color: #ff0000;">&quot;init()&quot;</span> viewSourceURL=<span style="color: #ff0000;">&quot;srcview/index.html&quot;</span><span style="color: #7400FF;">&gt;</span></span><br />
&nbsp; &nbsp; <span style="color: #339933;">&lt;mx:Script&gt;</span><br />
<span style="color: #339933;"> &nbsp; &nbsp; &nbsp; &nbsp;&lt;![CDATA[</span><br />
<span style="color: #339933;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;import multipart.MultipartVariables;</span><br />
<span style="color: #339933;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;import multipart.MultipartRequestLoader;</span><br />
<span style="color: #339933;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><br />
<span style="color: #339933;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;private var loader:MultipartRequestLoader;</span><br />
<br />
<span style="color: #339933;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;private function init():void</span><br />
<span style="color: #339933;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{</span><br />
<span style="color: #339933;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;loader = new MultipartRequestLoader('http://flex.imrahil.com/work/multipart_loader/upload.php');</span><br />
<span style="color: #339933;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;var variables:MultipartVariables = new MultipartVariables();</span><br />
<span style="color: #339933;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;var myByteArray:ByteArray = new ByteArray();</span><br />
<br />
<span style="color: #339933;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;// we will create a fake file content here, you should replace this with the binary data you want to upload</span><br />
<span style="color: #339933;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;for(var i:int=0; i&lt;100;i++) </span><br />
<span style="color: #339933;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{</span><br />
<span style="color: #339933;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;myByteArray.writeUTFBytes(&quot;123by\nAR\r\nRA\x65\x0156&quot;);</span><br />
<span style="color: #339933;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</span><br />
<br />
<span style="color: #339933;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;variables.add('file_data', myByteArray, 'filename.bin');</span><br />
<span style="color: #339933;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;variables.add('another_var','extra data');</span><br />
<br />
<span style="color: #339933;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;loader.variables = variables;</span><br />
<span style="color: #339933;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;loader.addEventListener(Event.COMPLETE, fileUploaded);</span><br />
<span style="color: #339933;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);</span><br />
<span style="color: #339933;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;loader.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);</span><br />
<span style="color: #339933;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</span><br />
<br />
<span style="color: #339933;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;private function fileUploaded(event:Event):void</span><br />
<span style="color: #339933;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{</span><br />
<span style="color: #339933;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;outputTxt.text += 'Result:';</span><br />
<span style="color: #339933;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;outputTxt.text += MultipartRequestLoader(event.target).responseBody;</span><br />
<span style="color: #339933;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</span><br />
<span style="color: #339933;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;private function securityErrorHandler(event:SecurityErrorEvent):void</span><br />
<span style="color: #339933;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{</span><br />
<span style="color: #339933;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;outputTxt.text = &quot;securityErrorHandler: &quot; + event;</span><br />
<span style="color: #339933;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</span><br />
<span style="color: #339933;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;private function ioErrorHandler(event:IOErrorEvent):void</span><br />
<span style="color: #339933;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{</span><br />
<span style="color: #339933;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;outputTxt.text = &quot;ioErrorHandler: &quot; + event;</span><br />
<span style="color: #339933;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</span><br />
<span style="color: #339933;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;private function upload(event:MouseEvent):void</span><br />
<span style="color: #339933;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{</span><br />
<span style="color: #339933;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;loader.load();</span><br />
<span style="color: #339933;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</span><br />
<span style="color: #339933;"> &nbsp; &nbsp; &nbsp; &nbsp;]]&gt;</span><br />
<span style="color: #339933;"> &nbsp; &nbsp;&lt;/mx:Script&gt;</span><br />
<br />
&nbsp; &nbsp; <span style="color: #000000;"><span style="color: #7400FF;">&lt;mx:VBox</span> width=<span style="color: #ff0000;">&quot;100%&quot;</span> height=<span style="color: #ff0000;">&quot;100%&quot;</span> horizontalAlign=<span style="color: #ff0000;">&quot;center&quot;</span> verticalAlign=<span style="color: #ff0000;">&quot;middle&quot;</span><span style="color: #7400FF;">&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000;"><span style="color: #7400FF;">&lt;mx:Button</span> label=<span style="color: #ff0000;">&quot;Upload!&quot;</span> click=<span style="color: #ff0000;">&quot;upload(event)&quot;</span> <span style="color: #7400FF;">/&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000;"><span style="color: #7400FF;">&lt;mx:TextArea</span> id=<span style="color: #ff0000;">&quot;outputTxt&quot;</span> width=<span style="color: #ff0000;">&quot;500&quot;</span> height=<span style="color: #ff0000;">&quot;250&quot;</span> <span style="color: #7400FF;">/&gt;</span></span><br />
&nbsp; &nbsp; <span style="color: #000000;"><span style="color: #7400FF;">&lt;/mx:VBox</span><span style="color: #7400FF;">&gt;</span></span> <br />
<span style="color: #000000;"><span style="color: #7400FF;">&lt;/mx:Application</span><span style="color: #7400FF;">&gt;</span></span></div></td></tr></tbody></table></div>
<img src="http://feeds.feedburner.com/~r/Flex_and_Air/~4/fxg2Fagr1z0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://flex.imrahil.com/2009/09/08/wysylanie-formularzy-multipartform-data/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flex SDK 3.4 – niespodzianka z wykresami</title>
		<link>http://flex.imrahil.com/2009/08/27/flex-sdk-3-4-niespodzianka-z-wykresami/</link>
		<comments>http://flex.imrahil.com/2009/08/27/flex-sdk-3-4-niespodzianka-z-wykresami/#comments</comments>
		<pubDate>Thu, 27 Aug 2009 12:30:41 +0000</pubDate>
		<dc:creator>Jarek</dc:creator>
				<category><![CDATA[Flex]]></category>
		<category><![CDATA[Wydarzenia]]></category>

		<guid isPermaLink="false">http://flex.imrahil.com/?p=332</guid>
		<description><![CDATA[Adobe opublikowało dzisiaj oficjalnie nowe Flex SDK 3.4 (chodzi oczywiście o to ze strony głównej, a nie z opensource.adobe.com gdzie leżało już jakiś czas temu). W zasadzie jest to ten sam build (3.4.0.9271) tyle tylko, że dorzucono do niego paczkę z komponentami do wykresów (Flex Data Visualization Component) w tejże wersji. Największe zaskoczenie jednak to [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.adobe.com/"  class="alinks_links" onclick="return alinks_click(this);" title="Adobe"  rel="external">Adobe</a> opublikowało dzisiaj oficjalnie <a href="http://www.adobe.com/cfusion/entitlement/index.cfm?e=flex3sdk" target="_blank">nowe Flex SDK 3.4</a> (chodzi oczywiście o to ze strony głównej, a nie z <a href="http://opensource.adobe.com/wiki/display/flexsdk/Download+Flex+3" target="_blank">opensource.adobe.com</a> gdzie leżało już jakiś czas temu).</p>
<p>W zasadzie jest to ten sam build (3.4.0.9271) tyle tylko, że dorzucono do niego paczkę z komponentami do wykresów (<a href="http://download.macromedia.com/pub/flex/sdk/datavisualization_sdk3.4.zip" target="_blank">Flex Data Visualization Component</a>) w tejże wersji.</p>
<p>Największe zaskoczenie jednak to fakt, że paczka z wykresami zawiera <strong>kod źródłowy</strong> oraz <strong>nie ma klasy odpowiedzialnej za watermarki!</strong> Ok, wcześniej można było rozpakować kod źródłowy posiadając klucz licencyjny do <a href="http://www.adobe.com/products/flex/"  class="alinks_links" onclick="return alinks_click(this);" title="Adobe Flex"  rel="external">Flex</a> Buildera, ale brak watermarków to całkowita nowość. Teraz każdy może robić wykresy czy używać AdvancedDataGrid bez żadnych problemów.</p>
<img src="http://feeds.feedburner.com/~r/Flex_and_Air/~4/CLgSCCvPd8A" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://flex.imrahil.com/2009/08/27/flex-sdk-3-4-niespodzianka-z-wykresami/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Uaktualnienia Flash Playera i Adobe AIR</title>
		<link>http://flex.imrahil.com/2009/07/31/uaktualnienia-flash-playera-i-adobe-air/</link>
		<comments>http://flex.imrahil.com/2009/07/31/uaktualnienia-flash-playera-i-adobe-air/#comments</comments>
		<pubDate>Fri, 31 Jul 2009 21:03:37 +0000</pubDate>
		<dc:creator>Jarek</dc:creator>
				<category><![CDATA[Flash Player]]></category>

		<guid isPermaLink="false">http://flex.imrahil.com/?p=309</guid>
		<description><![CDATA[Na szybko &#8211; Adobe udostępniło do ściągnięcia: nową wersję Adobe AIR 1.5.2 &#8211; zmiany wyłącznie kosmetyczne. Zdaje się, że zmienili tylko ekran instalacyjny tak, że już nie straszy komunikatem o zagrożeniach jakie stanowi instalowana aplikacja&#8230; Edit: pełne release notes dla developerów nowe wersje Flash Playera &#8211; w wersji 10.0.32.18 (wcześniejsza była wersja 10.0.22.87 &#8211; do [...]]]></description>
			<content:encoded><![CDATA[<p>Na szybko &#8211; <a href="http://www.adobe.com/"  class="alinks_links" onclick="return alinks_click(this);" title="Adobe"  rel="external">Adobe</a> udostępniło do ściągnięcia:</p>
<ul>
<li> nową wersję <a href="http://get.adobe.com/air/" target="_blank">Adobe AIR 1.5.2</a> &#8211; zmiany wyłącznie kosmetyczne. Zdaje się, że zmienili tylko ekran instalacyjny tak, że już nie straszy komunikatem o zagrożeniach jakie stanowi instalowana aplikacja&#8230; <img src='http://flex.imrahil.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
<strong>Edit:</strong> <a href="http://www.adobe.com/support/documentation/en/air/1_5_2/releasenotes_developers.html" target="_blank">pełne release notes dla developerów</a></li>
<li><a href="http://get.adobe.com/flashplayer" target="_blank">nowe wersje Flash Playera</a> &#8211; w wersji 10.0.32.18 (wcześniejsza była wersja 10.0.22.87 &#8211; do sprawdzenia na <a href="http://playerversion.com/" target="_blank">playerversion.com</a>). Wersje debug jak zwykle dostępne na <a href="http://www.adobe.com/support/flashplayer/downloads.html" target="_blank">stronach Support Center</a>. Poprawka podyktowana łataniem poważnej dziury bezpieczeństwa &#8211; więcej na ten temat <a href="http://www.adobe.com/go/apsb09-10" target="_blank">tutaj</a>.</li>
</ul>
<img src="http://feeds.feedburner.com/~r/Flex_and_Air/~4/hz2Wuaa2Rmw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://flex.imrahil.com/2009/07/31/uaktualnienia-flash-playera-i-adobe-air/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flex + Java w jednym projekcie w Flex Builderze – część II</title>
		<link>http://flex.imrahil.com/2009/07/31/flex-java-w-jednym-projekcie-w-flex-builderze-czesc-ii/</link>
		<comments>http://flex.imrahil.com/2009/07/31/flex-java-w-jednym-projekcie-w-flex-builderze-czesc-ii/#comments</comments>
		<pubDate>Fri, 31 Jul 2009 20:41:32 +0000</pubDate>
		<dc:creator>Jarek</dc:creator>
				<category><![CDATA[BlazeDS]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Flex Builder]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://flex.imrahil.com/?p=260</guid>
		<description><![CDATA[Czas na stworzenie prostej aplikacji wykorzystującej Jave (BlazeDS) i Flex w jednym projekcie Flex Buildera. Będzie to klasyczne &#8222;Hello World&#8221; Wymagane oprogramowanie: Flex Builder 3.0.2 – dostępny do ściągnięcia w wersji trial ze stron Adobe lub w specjalnej wersji dla studentów lub bezrobotnych programistów ze strony Free RIA Tools, BlazeDS 3.2.0.3978 &#8211; dostępny na stronach [...]]]></description>
			<content:encoded><![CDATA[<p>Czas na stworzenie prostej aplikacji wykorzystującej Jave (<a href="http://opensource.adobe.com/wiki/display/blazeds/BlazeDS/"  class="alinks_links" onclick="return alinks_click(this);" title="BlazeDS"  rel="external">BlazeDS</a>) i <a href="http://www.adobe.com/products/flex/"  class="alinks_links" onclick="return alinks_click(this);" title="Adobe Flex"  rel="external">Flex</a> w jednym projekcie Flex Buildera. Będzie to klasyczne &#8222;Hello World&#8221; <img src='http://flex.imrahil.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><strong>Wymagane oprogramowanie:</strong></p>
<ul>
<li><strong>Flex Builder 3.0.2</strong> – dostępny do ściągnięcia w wersji trial ze <a href="http://www.adobe.com/go/flex_trial" target="_blank">stron Adobe</a> lub w specjalnej wersji dla studentów lub bezrobotnych programistów ze <a href="https://freeriatools.adobe.com/" target="_blank">strony Free RIA Tools</a>,</li>
<li><strong>BlazeDS 3.2.0.3978</strong> &#8211; dostępny na <a href="http://flexorg.wip3.adobe.com/blazeds/3.0.x/milestone/3978/blazeds-bin-3.2.0.3978.zip" target="_blank">stronach Adobe Open Source</a> (jest to wersja z samymi binariami &#8211; dostępna jest także wersja z zintegrowanym Tomcatem) &#8211; rozpakowujemy w dowolne miejsce, np.: <em>C:\Work\BlazeDS</em></li>
<li><strong>Tomcat 6.0.20</strong> &#8211; dostępny na <a href="http://tomcat.apache.org/download-60.cgi" target="_blank">stronach Apache Software Foundation</a> &#8211; rozpakowujemy w dowolne miejsce, np.: <em>C:\apache-tomcat-6.0.20</em></li>
<li><strong>BlazeMonster</strong> &#8211; bardzo przydatne narzędzie do testowania świeżo stworzonych metod BlazeDS &#8211; do ściągnięcia <a href="http://sujitreddyg.wordpress.com/2009/05/07/blazemonster/" target="_blank">z bloga Sujit Reddy G</a>.</li>
</ul>
<p>Do dzieła!</p>
<p><span id="more-260"></span></p>
<p>Po odpaleniu Flex Buildera tworzymy nowy projekt wybierając w sekcji &#8222;Server technology&#8221; opcję &#8222;J2EE&#8221; i zaznaczając &#8222;Create combined <a href="http://java.sun.com/javase/downloads/index.jsp"  class="alinks_links" onclick="return alinks_click(this);" title="Java"  rel="external">Java</a>/Flex project using WTP&#8221;:</p>
<p style="text-align: center;"><a href="http://flex.imrahil.com/files/2009/07/FlexJava01.jpg" rel="lightbox[260]"><img class="size-medium wp-image-268  aligncenter" title="FlexJava01" src="http://flex.imrahil.com/files/2009/07/FlexJava01-300x292.jpg" alt="FlexJava01" width="300" height="292" /></a></p>
<p>Następnym krokiem jest stworzenie lokalnej instancji serwera Tomcat &#8211; wskazujemy katalog z rozpakowanymi binariami Tomcata:</p>
<p style="text-align: center;"><a href="http://flex.imrahil.com/files/2009/07/FlexJava02.jpg" rel="lightbox[260]"><img class="size-medium wp-image-269  aligncenter" title="FlexJava02" src="http://flex.imrahil.com/files/2009/07/FlexJava02-266x300.jpg" alt="FlexJava02" width="266" height="300" /></a></p>
<p style="text-align: center;"><a href="http://flex.imrahil.com/files/2009/07/FlexJava03.jpg" rel="lightbox[260]"><img class="size-medium wp-image-270  aligncenter" title="FlexJava03" src="http://flex.imrahil.com/files/2009/07/FlexJava03-266x300.jpg" alt="FlexJava03" width="266" height="300" /></a></p>
<p>oraz wskazanie lokalizacji pliku <em>blazeds.war</em>:</p>
<p style="text-align: center;"><a href="http://flex.imrahil.com/files/2009/07/FlexJava04.jpg" rel="lightbox[260]"><img class="size-medium wp-image-271 aligncenter" title="FlexJava04" src="http://flex.imrahil.com/files/2009/07/FlexJava04-300x292.jpg" alt="FlexJava04" width="300" height="292" /></a></p>
<p>Następny ekran i projekt jest już utworzony:</p>
<p style="text-align: center;"><a href="http://flex.imrahil.com/files/2009/07/FlexJava05.jpg" rel="lightbox[260]"><img class="size-medium wp-image-272 aligncenter" title="FlexJava05" src="http://flex.imrahil.com/files/2009/07/FlexJava05-277x300.jpg" alt="FlexJava05" width="277" height="300" /></a></p>
<p>Struktura nowego projektu powinna przedstawiać się następująco:</p>
<p style="text-align: center;"><a href="http://flex.imrahil.com/files/2009/07/FlexJava06.jpg" rel="lightbox[260]"><img class="size-full wp-image-267 aligncenter" src="http://flex.imrahil.com/files/2009/07/FlexJava06.jpg" alt="FlexJava06" width="280" height="451" /></a></p>
<p style="text-align: left;">Katalog <em>flex_src</em> to nasz główny katalog ze kodem Flexa, <em>src</em> z kodem Java, a <em>WebContent</em> to nasz lokalny serwer WWW.<br />
Aby upewnić się czy wszystko działa dodajmy do kodu Flexa kawałek prostego kodu:</p>
<div class="codecolorer-container mxml default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br /></div></td><td><div class="mxml codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000;">&lt;?xml version=<span style="color: #ff0000;">&quot;1.0&quot;</span> encoding=<span style="color: #ff0000;">&quot;utf-8&quot;</span>?<span style="color: #7400FF;">&gt;</span></span><br />
<span style="color: #000000;"><span style="color: #7400FF;">&lt;mx:Application</span> xmlns:mx=<span style="color: #ff0000;">&quot;http://www.adobe.com/2006/mxml&quot;</span> layout=<span style="color: #ff0000;">&quot;absolute&quot;</span><span style="color: #7400FF;">&gt;</span></span><br />
&nbsp; &nbsp; <span style="color: #000000;"><span style="color: #7400FF;">&lt;mx:Label</span> text=<span style="color: #ff0000;">&quot;Hello World!&quot;</span> horizontalCenter=<span style="color: #ff0000;">&quot;0&quot;</span> verticalCenter=<span style="color: #ff0000;">&quot;0&quot;</span> <span style="color: #7400FF;">/&gt;</span></span><br />
<span style="color: #000000;"><span style="color: #7400FF;">&lt;/mx:Application</span><span style="color: #7400FF;">&gt;</span></span></div></td></tr></tbody></table></div>
<p>i odpalmy całą aplikację na serwerze &#8211; klikamy prawym klawiszem myszy na projekcie wybieramy <em>Run</em> -&gt; <em>Run on Server</em>, a następnie Next, Next, Finish:</p>
<p style="text-align: center;"><a href="http://flex.imrahil.com/files/2009/07/FlexJava07.jpg" rel="lightbox[260]"><img class="size-medium wp-image-284   aligncenter" title="FlexJava07" src="http://flex.imrahil.com/files/2009/07/FlexJava07-292x300.jpg" alt="FlexJava07" width="292" height="300" /></a></p>
<p style="text-align: left;">W oknie konsoli Flex Buildera widzimy logi uruchamianego Tomcata, a na koniec otrzymujemy przepiękny error <em>HTTP Status 404</em> <img src='http://flex.imrahil.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
Jednak nie ma się co zrażać! Wracamy do Flex Buildera i wciskamy klawisz F11 (<em>Run debug</em>) w efekcie czego otwiera nam się domyślna przeglądarka, a w niej nasza mikro-aplikacja:</p>
<p style="text-align: center;"><a href="http://flex.imrahil.com/files/2009/07/FlexJava08.jpg" rel="lightbox[260]"><img class="size-medium wp-image-285 aligncenter" src="http://flex.imrahil.com/files/2009/07/FlexJava08-300x252.jpg" alt="FlexJava08" width="300" height="252" /></a></p>
<p>Taadaa! Serwer śmiga aż miło. Czas przystąpić do stworzenia czegoś bardziej konkretnego! Do dzieła!<br />
Na początek tworzymy nową klasę w Javie &#8211; <em>File -&gt; New -&gt; Other -&gt; Class</em>:</p>
<p style="text-align: center;"><a href="http://flex.imrahil.com/files/2009/07/FlexJava09.jpg" rel="lightbox[260]"><img class="size-medium wp-image-298 aligncenter" title="FlexJava09" src="http://flex.imrahil.com/files/2009/07/FlexJava09-250x300.jpg" alt="FlexJava09" width="250" height="300" /></a></p>
<p>i dodajemy do niej dwie metody: <em>helloWorld</em> i <em>repeatAfterMe</em>:</p>
<div class="codecolorer-container java default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br /></div></td><td><div class="java codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000; font-weight: bold;">package</span> <span style="color: #006699;">com.imrahil.tutorial</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> HelloWorld <br />
<span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #003399;">String</span> helloWorld<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">return</span> <span style="color: #0000ff;">&quot;Server said: Hello World!&quot;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #003399;">String</span> repeatAfterMe<span style="color: #009900;">&#40;</span><span style="color: #003399;">String</span> sayHello<span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">return</span> <span style="color: #0000ff;">&quot;You said: &quot;</span> <span style="color: #339933;">+</span> sayHello<span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
<span style="color: #009900;">&#125;</span></div></td></tr></tbody></table></div>
<p>Skompilowana klasa powinna znaleźć się w katalogu<em> <strong>/WebContent/WEB-INF/classes/com/imrahil/tutorial</strong></em>.<br />
Żeby jednak BlazeDS potrafił z niej skorzystać trzeba ją dodać do pliku <strong><em>remoting-config.xml</em></strong>, który powinien wyglądać następująco:</p>
<div class="codecolorer-container xml default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br /></div></td><td><div class="xml codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;?xml</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span> <span style="color: #000066;">encoding</span>=<span style="color: #ff0000;">&quot;UTF-8&quot;</span><span style="color: #000000; font-weight: bold;">?&gt;</span></span><br />
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;service</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;remoting-service&quot;</span> </span><br />
<span style="color: #009900;"> &nbsp; &nbsp;<span style="color: #000066;">class</span>=<span style="color: #ff0000;">&quot;flex.messaging.services.RemotingService&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span><br />
<br />
&nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;adapters<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;adapter-definition</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;java-object&quot;</span> <span style="color: #000066;">class</span>=<span style="color: #ff0000;">&quot;flex.messaging.services.remoting.adapters.JavaAdapter&quot;</span> <span style="color: #000066;">default</span>=<span style="color: #ff0000;">&quot;true&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/adapters<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
<br />
&nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;default-channels<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;channel</span> <span style="color: #000066;">ref</span>=<span style="color: #ff0000;">&quot;my-amf&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/default-channels<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;destination</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;HelloWorld&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;properties<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;source<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>com.imrahil.tutorial.HelloWorld<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/source<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/properties<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
&nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/destination<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/service<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></div></td></tr></tbody></table></div>
<p>Przy okazji można wywalić pliki: <strong><em>messaging-config.xml</em></strong> oraz <em><strong>proxy-config.xml</strong> </em>bo z tych opcji nie będziemy wogóle korzystać. Trzeba jednak zmodyfikować wtedy plik <strong><em>services-config.xml</em></strong>, który powinien wyglądać tak:</p>
<div class="codecolorer-container xml default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br />40<br /></div></td><td><div class="xml codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;?xml</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span> <span style="color: #000066;">encoding</span>=<span style="color: #ff0000;">&quot;UTF-8&quot;</span><span style="color: #000000; font-weight: bold;">?&gt;</span></span><br />
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;services-config<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
<br />
&nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;services<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;service-include</span> <span style="color: #000066;">file-path</span>=<span style="color: #ff0000;">&quot;remoting-config.xml&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/services<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
<br />
&nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;security<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;login-command</span> <span style="color: #000066;">class</span>=<span style="color: #ff0000;">&quot;flex.messaging.security.TomcatLoginCommand&quot;</span> <span style="color: #000066;">server</span>=<span style="color: #ff0000;">&quot;Tomcat&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/security<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
<br />
&nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;channels<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;channel-definition</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;my-amf&quot;</span> <span style="color: #000066;">class</span>=<span style="color: #ff0000;">&quot;mx.messaging.channels.AMFChannel&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;endpoint</span> <span style="color: #000066;">url</span>=<span style="color: #ff0000;">&quot;http://{server.name}:{server.port}/{context.root}/messagebroker/amf&quot;</span> <span style="color: #000066;">class</span>=<span style="color: #ff0000;">&quot;flex.messaging.endpoints.AMFEndpoint&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/channel-definition<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
&nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/channels<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
<br />
&nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;logging<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;target</span> <span style="color: #000066;">class</span>=<span style="color: #ff0000;">&quot;flex.messaging.log.ConsoleTarget&quot;</span> <span style="color: #000066;">level</span>=<span style="color: #ff0000;">&quot;Debug&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;properties<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;prefix<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>[BlazeDS] <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/prefix<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;includeDate<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>false<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/includeDate<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;includeTime<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>false<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/includeTime<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;includeLevel<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>false<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/includeLevel<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;includeCategory<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>false<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/includeCategory<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/properties<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;filters<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;pattern<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Endpoint.*<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/pattern<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;pattern<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Service.*<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/pattern<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;pattern<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>Configuration<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/pattern<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/filters<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/target<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
&nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/logging<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
<br />
&nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;system<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;redeploy<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;enabled<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>false<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/enabled<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/redeploy<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
&nbsp; &nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/system<span style="color: #000000; font-weight: bold;">&gt;</span></span></span><br />
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/services-config<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></div></td></tr></tbody></table></div>
<p>Cenną zmianą jest zwłaszcza opcja <strong>target=&#8221;Debug&#8221;</strong> w sekcji <strong>&lt;logging /&gt;</strong> &#8211; pozwoli nam ona obserwować odpowiedzi BlazeDS w konsoli serwera Tomcat.</p>
<p>Czas zatem stworzyć aplikację Flex komunikującą się z nowo stworzonymi metodami Javy.</p>
<p>Tworzymy nową <em>MXML Application</em> i piszemy:</p>
<div class="codecolorer-container mxml default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br /></div></td><td><div class="mxml codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #000000;">&lt;?xml version=<span style="color: #ff0000;">&quot;1.0&quot;</span> encoding=<span style="color: #ff0000;">&quot;utf-8&quot;</span>?<span style="color: #7400FF;">&gt;</span></span><br />
<span style="color: #000000;"><span style="color: #7400FF;">&lt;mx:Application</span> xmlns:mx=<span style="color: #ff0000;">&quot;http://www.adobe.com/2006/mxml&quot;</span> layout=<span style="color: #ff0000;">&quot;vertical&quot;</span> horizontalAlign=<span style="color: #ff0000;">&quot;left&quot;</span><span style="color: #7400FF;">&gt;</span></span><br />
<br />
&nbsp; &nbsp; <span style="color: #000000;"><span style="color: #7400FF;">&lt;mx:RemoteObject</span> id=<span style="color: #ff0000;">&quot;myservice&quot;</span> fault=<span style="color: #ff0000;">&quot;faultHandler(event)&quot;</span> showBusyCursor=<span style="color: #ff0000;">&quot;true&quot;</span> destination=<span style="color: #ff0000;">&quot;HelloWorld&quot;</span><span style="color: #7400FF;">&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000;"><span style="color: #7400FF;">&lt;mx:method</span> name=<span style="color: #ff0000;">&quot;helloWorld&quot;</span> result=<span style="color: #ff0000;">&quot;resultHandler(event)&quot;</span> <span style="color: #7400FF;">/&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000;"><span style="color: #7400FF;">&lt;mx:method</span> name=<span style="color: #ff0000;">&quot;repeatAfterMe&quot;</span> result=<span style="color: #ff0000;">&quot;resultHandler(event)&quot;</span> <span style="color: #7400FF;">/&gt;</span></span><br />
&nbsp; &nbsp; <span style="color: #000000;"><span style="color: #7400FF;">&lt;/mx:RemoteObject</span><span style="color: #7400FF;">&gt;</span></span><br />
<br />
&nbsp; &nbsp; <span style="color: #339933;">&lt;mx:Script&gt;</span><br />
<span style="color: #339933;"> &nbsp; &nbsp; &nbsp; &nbsp;&lt;![CDATA[</span><br />
<span style="color: #339933;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;import mx.rpc.events.ResultEvent;</span><br />
<span style="color: #339933;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;import mx.rpc.events.FaultEvent;</span><br />
<span style="color: #339933;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><br />
<span style="color: #339933;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;private function resultHandler(evt:ResultEvent):void</span><br />
<span style="color: #339933;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{</span><br />
<span style="color: #339933;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;outputTxt.text += evt.message.body.toString() + &quot;\n&quot;;</span><br />
<span style="color: #339933;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</span><br />
<br />
<span style="color: #339933;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;private function faultHandler(fault:FaultEvent):void</span><br />
<span style="color: #339933;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{</span><br />
<span style="color: #339933;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;outputTxt.text = &nbsp;&quot;Code: &quot; + fault.fault.faultCode + &quot;\n&quot;;</span><br />
<span style="color: #339933;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;outputTxt.text += &quot;Message: &quot; + fault.fault.faultString + &quot;\n&quot;;</span><br />
<span style="color: #339933;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;outputTxt.text += &quot;Detail: &quot; + fault.fault.faultDetail + &quot;\n&quot;;</span><br />
<span style="color: #339933;"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}</span><br />
<span style="color: #339933;"> &nbsp; &nbsp; &nbsp; &nbsp;]]&gt;</span><br />
<span style="color: #339933;">&nbsp; &nbsp; &lt;/mx:Script&gt;</span><br />
<br />
&nbsp; &nbsp; <span style="color: #000000;"><span style="color: #7400FF;">&lt;mx:Label</span> text=<span style="color: #ff0000;">&quot;Output:&quot;</span><span style="color: #7400FF;">/&gt;</span></span><br />
&nbsp; &nbsp; <span style="color: #000000;"><span style="color: #7400FF;">&lt;mx:TextArea</span> width=<span style="color: #ff0000;">&quot;500&quot;</span> height=<span style="color: #ff0000;">&quot;100&quot;</span> id=<span style="color: #ff0000;">&quot;outputTxt&quot;</span><span style="color: #7400FF;">/&gt;</span></span><br />
&nbsp; &nbsp; <span style="color: #000000;"><span style="color: #7400FF;">&lt;mx:Button</span> label=<span style="color: #ff0000;">&quot;Hello World!&quot;</span> click=<span style="color: #ff0000;">&quot;myservice.getOperation('helloWorld').send();&quot;</span><span style="color: #7400FF;">/&gt;</span></span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span style="color: #000000;"><span style="color: #7400FF;">&lt;mx:HBox</span> width=<span style="color: #ff0000;">&quot;100%&quot;</span><span style="color: #7400FF;">&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000;"><span style="color: #7400FF;">&lt;mx:Button</span> label=<span style="color: #ff0000;">&quot;Repeat After Me:&quot;</span> click=<span style="color: #ff0000;">&quot;myservice.getOperation('repeatAfterMe').send(myText.text);&quot;</span><span style="color: #7400FF;">/&gt;</span></span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000000;"><span style="color: #7400FF;">&lt;mx:TextInput</span> id=<span style="color: #ff0000;">&quot;myText&quot;</span> text=<span style="color: #ff0000;">&quot;Sent to Server&quot;</span><span style="color: #7400FF;">/&gt;</span></span><br />
&nbsp; &nbsp; <span style="color: #000000;"><span style="color: #7400FF;">&lt;/mx:HBox</span><span style="color: #7400FF;">&gt;</span></span><br />
&nbsp; &nbsp; <br />
&nbsp; &nbsp; <span style="color: #000000;"><span style="color: #7400FF;">&lt;mx:Button</span> label=<span style="color: #ff0000;">&quot;Invoke wrong method&quot;</span> click=<span style="color: #ff0000;">&quot;myservice.getOperation('wrongMethod').send();&quot;</span><span style="color: #7400FF;">/&gt;</span></span><br />
<span style="color: #000000;"><span style="color: #7400FF;">&lt;/mx:Application</span><span style="color: #7400FF;">&gt;</span></span></div></td></tr></tbody></table></div>
<p><strong>Uwaga!</strong> Jeśli po odpaleniu w przeglądarce (klawisz F11 lub CTRL+F11 w Flex Builderze) i wywołaniu metody helloWorld wyskakuje nam błąd <em>Client.Error.MessageSend</em> (a konkretniej: <em>Channel.Connect.Failed error NetConnection.Call.Failed: HTTP: Failed: url: &#8216;http://localhost:8080/WebContent/messagebroker/amf&#8217;</em>) to  prawdopodobnie trzeba zmodyfikować parametr <strong><em>Context root</em></strong> w opcjach projektu: <strong><em>Preferences -&gt; Flex Server -&gt; Context root</em></strong>.<br />
Właściwą wartością jest nazwa projektu, czyli w naszym przypadku: <em>BlazeDS-Hello-World.</em> Trzeba jeszcze zrestartować serwer (lub wyczyścić mu cache: prawy klawisz myszy na serwerze w zakładce <em>Servers</em> i opcja <em>Clean</em>)</p>
<p>Gdy już wszystko ustawimy jak trzeba to pod adresem: <strong><em>http://localhost:8080/BlazeDS-Hello-World/hello_world.html</em></strong> znajdziemy naszą śliczną aplikację:</p>
<p style="text-align: center;"><a href="http://flex.imrahil.com/files/2009/07/FlexJava10.jpg" rel="lightbox[260]"><img class="size-medium wp-image-301 aligncenter" title="FlexJava10" src="http://flex.imrahil.com/files/2009/07/FlexJava10-300x209.jpg" alt="FlexJava10" width="300" height="209" /></a></p>
<p>Jeśli ktoś nie miał tyle czasu, żeby samemu stworzyć powyższą aplikację ten może <a href="http://flex.imrahil.com/tutorials/flex-java/BlazeDS-Hello-World.zip">ściągnąć pełen kod wraz z plikami projektu Flex Buildera</a>.</p>
<p>ps.: kod Flexowy bazuje w pewnej części na kodzie Wade&#8217;a Arnolda z <a href="http://wadearnold.com/blog/flash/blazeds-worth-figuring-out-helloworld-example" target="_blank">tego wpisu</a>.</p>
<img src="http://feeds.feedburner.com/~r/Flex_and_Air/~4/OIwvNetyam4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://flex.imrahil.com/2009/07/31/flex-java-w-jednym-projekcie-w-flex-builderze-czesc-ii/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Flex + Java w jednym projekcie w Flex Builderze – część I</title>
		<link>http://flex.imrahil.com/2009/04/11/flex-java-w-jednym-projekcie-w-flex-builderze-czesc-i/</link>
		<comments>http://flex.imrahil.com/2009/04/11/flex-java-w-jednym-projekcie-w-flex-builderze-czesc-i/#comments</comments>
		<pubDate>Sat, 11 Apr 2009 12:10:39 +0000</pubDate>
		<dc:creator>Jarek</dc:creator>
				<category><![CDATA[BlazeDS]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://flex.imrahil.com/?p=147</guid>
		<description><![CDATA[Chciałbym przedstawić w jaki sposób można przygotować środowisko deweloperskie Flex Builder do kodowania Flex + Java. Chodzi oto, żeby móc tworzyć jednocześnie część aplikacji widoczną dla użytkownika (frontend) jak i backend, czyli kod Javy odpowiedzialny np.: za komunikację z bazami danych i obróbkę tych danych. Uwaga! Poniższy sposób tworzenia aplikacji sprawdza się tylko w przypadku [...]]]></description>
			<content:encoded><![CDATA[<p>Chciałbym przedstawić w jaki sposób można przygotować środowisko deweloperskie <a href="http://www.adobe.com/products/flex/"  class="alinks_links" onclick="return alinks_click(this);" title="Adobe Flex"  rel="external">Flex</a> Builder do kodowania Flex + <a href="http://java.sun.com/javase/downloads/index.jsp"  class="alinks_links" onclick="return alinks_click(this);" title="Java"  rel="external">Java</a>. Chodzi oto, żeby móc tworzyć jednocześnie część aplikacji widoczną dla użytkownika (frontend) jak i backend, czyli kod Javy odpowiedzialny np.: za komunikację z bazami danych i obróbkę tych danych.</p>
<p>Uwaga! Poniższy sposób tworzenia aplikacji sprawdza się tylko w przypadku kodowania przez jedną osobę.</p>
<p>Kod Javy będzie docelowo wykorzystywał <a href="http://opensource.adobe.com/wiki/display/blazeds/BlazeDS/"  class="alinks_links" onclick="return alinks_click(this);" title="BlazeDS"  rel="external">BlazeDS</a>/LiveCycle Data Services &#8211; będzie to jednak zagadnieniem następnego tutoriala.</p>
<p><strong>Wymagane oprogramowanie:</strong> Flex Builder 3.0.2 &#8211; dostępny do ściągnięcia w wersji trial ze <a href="http://www.adobe.com/go/flex_trial" target="_blank">stron Adobe</a> lub w specjalnej wersji dla studentów lub bezrobotnych programistów ze <a href="https://freeriatools.adobe.com/" target="_blank">strony Free RIA Tools</a>.</p>
<p><span id="more-147"></span></p>
<p>Zaczynamy od uruchomienia Flex Buildera:</p>
<p style="text-align: center;"><a href="http://flex.imrahil.com/files/2009/04/flex_builder_blazeds00.jpg" rel="lightbox[147]"><img class="size-medium wp-image-222 aligncenter" title="flex_builder_blazeds00" src="http://flex.imrahil.com/files/2009/04/flex_builder_blazeds00-300x141.jpg" alt="flex_builder_blazeds00" width="300" height="141" /></a></p>
<p style="text-align: center;"><a href="http://flex.imrahil.com/files/2009/04/flex_builder_blazeds01.jpg" rel="lightbox[147]"><img class="size-medium wp-image-223 aligncenter" title="flex_builder_blazeds01" src="http://flex.imrahil.com/files/2009/04/flex_builder_blazeds01-300x225.jpg" alt="flex_builder_blazeds01" width="300" height="225" /></a></p>
<p style="text-align: left;">Wybieramy menu <strong>Help -&gt; Software Updates -&gt; Find and Install</strong>:</p>
<p style="text-align: center;"><a href="http://flex.imrahil.com/files/2009/04/flex_builder_blazeds02.jpg" rel="lightbox[147]"><img class="aligncenter size-medium wp-image-237" title="flex_builder_blazeds02" src="http://flex.imrahil.com/files/2009/04/flex_builder_blazeds02-300x225.jpg" alt="flex_builder_blazeds02" width="300" height="225" /></a></p>
<p style="text-align: left;">Zaznaczamy opcję &#8222;<strong>Search for new features to install</strong>&#8222;:</p>
<p style="text-align: center;"><a href="http://flex.imrahil.com/files/2009/04/flex_builder_blazeds03.jpg" rel="lightbox[147]"><img class="aligncenter size-medium wp-image-238" title="flex_builder_blazeds03" src="http://flex.imrahil.com/files/2009/04/flex_builder_blazeds03-296x300.jpg" alt="flex_builder_blazeds03" width="296" height="300" /></a></p>
<p style="text-align: left;">Na liście zaznaczamy <strong>Europa Discovery Site</strong> i klikamy <strong>Finish</strong>:</p>
<p style="text-align: center;"><a href="http://flex.imrahil.com/files/2009/04/flex_builder_blazeds04.jpg" rel="lightbox[147]"><img class="aligncenter size-medium wp-image-239" title="flex_builder_blazeds04" src="http://flex.imrahil.com/files/2009/04/flex_builder_blazeds04-296x300.jpg" alt="flex_builder_blazeds04" width="296" height="300" /></a></p>
<p style="text-align: left;">Po wczytaniu listy aplikacji wybieramy ostatnią pozycję &#8222;<strong>Web and JEE Development</strong>&#8222;:</p>
<p style="text-align: center;"><a href="http://flex.imrahil.com/files/2009/04/flex_builder_blazeds05.jpg" rel="lightbox[147]"><img class="aligncenter size-medium wp-image-227" title="flex_builder_blazeds05" src="http://flex.imrahil.com/files/2009/04/flex_builder_blazeds05-272x300.jpg" alt="flex_builder_blazeds05" width="272" height="300" /></a></p>
<p style="text-align: left;">oraz wybieramy &#8222;<strong>Select required</strong>&#8222;, żeby dodać wszystkie wymagane zależności:</p>
<p style="text-align: center;"><a href="http://flex.imrahil.com/files/2009/04/flex_builder_blazeds06.jpg" rel="lightbox[147]"><img class="aligncenter size-medium wp-image-228" title="flex_builder_blazeds06" src="http://flex.imrahil.com/files/2009/04/flex_builder_blazeds06-272x300.jpg" alt="flex_builder_blazeds06" width="272" height="300" /></a></p>
<p style="text-align: left;">Następny krok to zgoda licencyjna:</p>
<p style="text-align: center;"><a href="http://flex.imrahil.com/files/2009/04/flex_builder_blazeds07.jpg" rel="lightbox[147]"><img class="aligncenter size-medium wp-image-229" title="flex_builder_blazeds07" src="http://flex.imrahil.com/files/2009/04/flex_builder_blazeds07-272x300.jpg" alt="flex_builder_blazeds07" width="272" height="300" /></a></p>
<p style="text-align: left;">oraz wybór komponentów opcjonalnych &#8211; wybieramy &#8222;<strong>Select All</strong>&#8221; (lub nie ruszamy nic, jeśli wszystko jest już zaznaczone):</p>
<p style="text-align: center;"><a href="http://flex.imrahil.com/files/2009/04/flex_builder_blazeds08.jpg" rel="lightbox[147]"><img class="aligncenter size-medium wp-image-230" title="flex_builder_blazeds08" src="http://flex.imrahil.com/files/2009/04/flex_builder_blazeds08-272x300.jpg" alt="flex_builder_blazeds08" width="272" height="300" /></a></p>
<p style="text-align: left;">Jeszcze tylko ekran podsumowujący i klikamy <strong>Finish</strong>:</p>
<p style="text-align: center;"><a href="http://flex.imrahil.com/files/2009/04/flex_builder_blazeds09.jpg" rel="lightbox[147]"><img class="aligncenter size-medium wp-image-231" title="flex_builder_blazeds09" src="http://flex.imrahil.com/files/2009/04/flex_builder_blazeds09-272x300.jpg" alt="flex_builder_blazeds09" width="272" height="300" /></a></p>
<p style="text-align: left;">Chwila czekania, aż wszystkie ściągną się na dysk:</p>
<p style="text-align: center;"><a href="http://flex.imrahil.com/files/2009/04/flex_builder_blazeds10.jpg" rel="lightbox[147]"><img class="aligncenter size-medium wp-image-236" title="flex_builder_blazeds10" src="http://flex.imrahil.com/files/2009/04/flex_builder_blazeds10-300x132.jpg" alt="flex_builder_blazeds10" width="300" height="132" /></a></p>
<p style="text-align: left;"><a href="http://flex.imrahil.com/files/2009/04/flex_builder_blazeds11.jpg" rel="lightbox[147]"><img class="alignleft size-medium wp-image-250" style="display: none;" title="flex_builder_blazeds11" src="http://flex.imrahil.com/files/2009/04/flex_builder_blazeds11-300x250.jpg" alt="flex_builder_blazeds11" width="300" height="250" /></a></p>
<p style="text-align: left;">Po ściągnięciu plików jeszcze raz zatwierdzamy chęć instalacji wybierając &#8222;<strong>Install all</strong>&#8222;.</p>
<p style="text-align: left;">Po pozytywej i całkowitej instalacji pojawia się monit do restartu Flex Buildera:</p>
<p style="text-align: center;"><a href="http://flex.imrahil.com/files/2009/04/flex_builder_blazeds12.jpg" rel="lightbox[147]"><img class="aligncenter size-medium wp-image-221" title="flex_builder_blazeds12" src="http://flex.imrahil.com/files/2009/04/flex_builder_blazeds12-300x99.jpg" alt="flex_builder_blazeds12" width="300" height="99" /></a></p>
<p style="text-align: left;">Efektem powyższych kroków będzie nowa opcja &#8222;<strong>Create combined Flex/Java project using WTP</strong>&#8221; w momencie tworzenia nowego projektu:</p>
<p style="text-align: center;"><a href="http://flex.imrahil.com/files/2009/04/flex_builder_blazeds13.jpg" rel="lightbox[147]"><img class="aligncenter size-medium wp-image-256" title="flex_builder_blazeds13" src="http://flex.imrahil.com/files/2009/04/flex_builder_blazeds13-300x292.jpg" alt="flex_builder_blazeds13" width="300" height="292" /></a></p>
<p style="text-align: left;">Czas na Flex + Java w jednym projekcie w Flex Builderze &#8211; część II !</p>
<img src="http://feeds.feedburner.com/~r/Flex_and_Air/~4/4R486WJ-jMU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://flex.imrahil.com/2009/04/11/flex-java-w-jednym-projekcie-w-flex-builderze-czesc-i/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PIT-37 przez internet, czyli e-Deklaracje Desktop</title>
		<link>http://flex.imrahil.com/2009/04/10/pit-37-przez-internet-czyli-e-deklaracje-desktop/</link>
		<comments>http://flex.imrahil.com/2009/04/10/pit-37-przez-internet-czyli-e-deklaracje-desktop/#comments</comments>
		<pubDate>Fri, 10 Apr 2009 08:41:48 +0000</pubDate>
		<dc:creator>Jarek</dc:creator>
				<category><![CDATA[AIR]]></category>
		<category><![CDATA[Różne]]></category>
		<category><![CDATA[Wydarzenia]]></category>

		<guid isPermaLink="false">http://flex.imrahil.com/?p=199</guid>
		<description><![CDATA[Uwaga! Pojawił się chyba pierwszy duży projekt AIR&#8216;owy w Polsce!. Ministerstwo Finansów zdecydowało się stworzyć aplikację do wypełniania PIT&#8217;ów-37 w technologii Adobe AIR. Do ściągnięcia ze strony www.e-deklaracje.gov.pl. Wielkość tego projektu to jednak nie złożoność aplikacji (bo całość wypełniania i obliczeń opiera się o interaktywny formularz PDF), ale jego nadchodząca popularność. Już widzę, jak w [...]]]></description>
			<content:encoded><![CDATA[<p>Uwaga! Pojawił się chyba pierwszy duży projekt <a href="http://www.adobe.com/products/air/"  class="alinks_links" onclick="return alinks_click(this);" title="Adobe AIR"  rel="external">AIR</a>&#8216;owy w Polsce!. Ministerstwo Finansów zdecydowało się stworzyć aplikację do wypełniania PIT&#8217;ów-37 w technologii <a href="http://www.adobe.com/"  class="alinks_links" onclick="return alinks_click(this);" title="Adobe"  rel="external">Adobe</a> AIR. Do ściągnięcia ze strony <a href="http://www.e-deklaracje.gov.pl/index.php?page=do_pobrania" target="_blank">www.e-deklaracje.gov.pl</a>.</p>
<p>Wielkość tego projektu to jednak nie złożoność aplikacji (bo całość wypełniania i obliczeń opiera się o interaktywny formularz PDF), ale jego nadchodząca popularność. Już widzę, jak w statystykach wystrzelą słupki popularności środowiska Adobe AIR w Polsce <img src='http://flex.imrahil.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Appka oprócz rozliczeniowego PDF&#8217;a dodaje kilka możliwości &#8222;desktopowych&#8221;, czyli zapisywanie wersji roboczych na dysk, śledzenie statusu wysłanego rozliczenia czy z detali: kontrolę aktywności połączenia internetowego lub uruchamianie na starcie systemu.<br />
Przydałby się jeszcze tylko lepszy system pomocy, bo ten aktualny to po prostu wielgachny PDF w którym na 30 stronach opisana jest cała aplikacja. Dla normalnego użytkownika jest to całkowicie nie do ogarnięcia&#8230;</p>
<img src="http://feeds.feedburner.com/~r/Flex_and_Air/~4/CnrrJUyEpl4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://flex.imrahil.com/2009/04/10/pit-37-przez-internet-czyli-e-deklaracje-desktop/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Lupo – szybkie i zgrabne tworzenie tłumaczeń i lokalizacji</title>
		<link>http://flex.imrahil.com/2009/04/09/lupo-szybkie-i-zgrabne-tworzenie-tlumaczen-i-lokalizacji/</link>
		<comments>http://flex.imrahil.com/2009/04/09/lupo-szybkie-i-zgrabne-tworzenie-tlumaczen-i-lokalizacji/#comments</comments>
		<pubDate>Thu, 09 Apr 2009 11:07:04 +0000</pubDate>
		<dc:creator>Jarek</dc:creator>
				<category><![CDATA[AIR]]></category>
		<category><![CDATA[Różne]]></category>
		<category><![CDATA[Zapamiętać]]></category>

		<guid isPermaLink="false">http://flex.imrahil.com/?p=192</guid>
		<description><![CDATA[Lupo Flex Localization Studio &#8211; to kolejna fajna rzecz znaleziona na blogu Davida Deraedt&#8217;a (wcześniej była prezentacja o Agile+Flex). Lupo Flex Localization Studio będzie to narzędzie składające się z dwóch modułów z których każdy ułatwiać będzie: Lupo Manager &#8211; proces tworzenia lokalizacji podczas pisania aplikacji, czyli: zamianę tekstów na odnośniki do resourceManager&#8217;a, dodawanie nowych jezyków, [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.dehats.com/drupal/?q=node/81" target="_blank">Lupo Flex Localization Studio</a> &#8211; to kolejna fajna rzecz znaleziona na <a href="http://www.dehats.com/drupal/" target="_blank">blogu Davida Deraedt&#8217;a</a> (wcześniej była <a href="http://flex.imrahil.com/2009/04/09/flex-i-metodologia-agile/" target="_blank">prezentacja o Agile+Flex</a>).</p>
<p style="text-align: center;"><a href="http://www.dehats.com/drupal/?q=node/81" target="_blank"><img class="aligncenter size-full wp-image-193" title="Lupo Flex Localization Studio" src="http://flex.imrahil.com/files/2009/04/lupo_screenshot.jpg" alt="lupo_screenshot" width="145" height="145" /></a></p>
<p>Lupo <a href="http://www.adobe.com/products/flex/"  class="alinks_links" onclick="return alinks_click(this);" title="Adobe Flex"  rel="external">Flex</a> Localization Studio będzie to narzędzie składające się z dwóch modułów z których każdy ułatwiać będzie:</p>
<ul>
<li>Lupo Manager &#8211; proces tworzenia lokalizacji podczas pisania aplikacji, czyli: zamianę tekstów na odnośniki do resourceManager&#8217;a, dodawanie nowych jezyków, czy generowanie potrzebnego kodu AS/MXML</li>
<li>Lupo Translator &#8211; proces tłumaczenia kolejnych tekstów aplikacji na różne języki,  coś na kształt <a href="http://www.poedit.net/" target="_blank">Poedit</a> dla plików *.po/*.mo</li>
</ul>
<p>Niestety nie ma narazie możliwości ściągnięcia instalki Lupo ani zarejestrowania się do programu beta-testów&#8230;. <img src='http://flex.imrahil.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </p>
<img src="http://feeds.feedburner.com/~r/Flex_and_Air/~4/F0dEtoHkyDs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://flex.imrahil.com/2009/04/09/lupo-szybkie-i-zgrabne-tworzenie-tlumaczen-i-lokalizacji/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Flex i metodologia Agile</title>
		<link>http://flex.imrahil.com/2009/04/09/flex-i-metodologia-agile/</link>
		<comments>http://flex.imrahil.com/2009/04/09/flex-i-metodologia-agile/#comments</comments>
		<pubDate>Thu, 09 Apr 2009 10:49:23 +0000</pubDate>
		<dc:creator>Jarek</dc:creator>
				<category><![CDATA[Flash Platform]]></category>
		<category><![CDATA[Różne]]></category>

		<guid isPermaLink="false">http://flex.imrahil.com/?p=184</guid>
		<description><![CDATA[Na blogu Davida Deraedt&#8217;a znalazłem bardzo ciekawą prezentację dotyczącą kodowania we Flexie przy wykorzystaniu metodyki Agile:]]></description>
			<content:encoded><![CDATA[<p>Na <a href="http://www.dehats.com/drupal/?q=node/66" target="_blank">blogu Davida Deraedt&#8217;a</a> znalazłem bardzo ciekawą prezentację dotyczącą kodowania we Flexie przy wykorzystaniu metodyki Agile:</p>
<p style="text-align: center;"><object width="400" height="300" data="http://data.sliderocket.com/SlideRocketPlayer.swf" type="application/x-shockwave-flash"><param name="flashvars" value="id=80840675-B0DB-84AE-496C-AB9873FCD501" /><param name="src" value="http://data.sliderocket.com/SlideRocketPlayer.swf" /><param name="allowfullscreen" value="true" /></object></p>
<p style="text-align: center;">
<img src="http://feeds.feedburner.com/~r/Flex_and_Air/~4/1heWQ4ncBAw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://flex.imrahil.com/2009/04/09/flex-i-metodologia-agile/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss><!-- Dynamic page generated in 0.753 seconds. --><!-- Cached page generated by WP-Super-Cache on 2010-09-03 03:00:59 --><!-- Compression = gzip -->
