<?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>Flex i AIR &#187; Flex Builder</title>
	<atom:link href="http://flex.imrahil.com/category/flex-builder/feed/" rel="self" type="application/rss+xml" />
	<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>
		<item>
		<title>Flex + Java w jednym projekcie w Flex Builderze &#8211; 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>
]]></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 Builder 4 &#8222;Gumbo&#8221;</title>
		<link>http://flex.imrahil.com/2008/11/18/flex-builder-4-gumbo/</link>
		<comments>http://flex.imrahil.com/2008/11/18/flex-builder-4-gumbo/#comments</comments>
		<pubDate>Mon, 17 Nov 2008 23:43:27 +0000</pubDate>
		<dc:creator>Jarek</dc:creator>
				<category><![CDATA[Adobe MAX]]></category>
		<category><![CDATA[Flex Builder]]></category>

		<guid isPermaLink="false">http://flex.imrahil.com/?p=102</guid>
		<description><![CDATA[Kolejna, rewolucyjna wersja środowiska (IDE) do tworzenia aplikacji Flex. Zawiera takie oto nowości: integrację z Flash Catalyst (do ekspresowego prototypowania interfejsów aplikacji), wbudowane wsparcie dla FlexUnit, wbudowany monitor sieciowy, automatyczne gettery i settery (mały detal, a niezmiernie cieszy&#8230;) szablony dla MXML, AS czy CSS, całkiem nowe narzędzia do zarządzania danymi z server-side. Całość dostępna narazie [...]]]></description>
			<content:encoded><![CDATA[<p>Kolejna, rewolucyjna wersja środowiska (IDE) do tworzenia aplikacji <a href="http://www.adobe.com/products/flex/"  class="alinks_links" onclick="return alinks_click(this);" title="Adobe Flex"  rel="external">Flex</a>. Zawiera takie oto nowości:</p>
<ul>
<li>integrację z Flash Catalyst (do ekspresowego prototypowania interfejsów aplikacji),</li>
<li>wbudowane wsparcie dla FlexUnit,</li>
<li>wbudowany monitor sieciowy,</li>
<li>automatyczne gettery i settery (mały detal, a niezmiernie cieszy&#8230;)</li>
<li>szablony dla MXML, AS czy CSS,</li>
<li>całkiem nowe narzędzia do zarządzania danymi z server-side.</li>
</ul>
<p>Całość <a href="http://labs.adobe.com/technologies/gumbo/" target="_blank">dostępna</a> narazie tylko dla uczestników MAX 2008 (grrr&#8230;). Dla pozostałych zostaje zabawa z <a href="http://opensource.adobe.com/wiki/display/flexsdk/Download+Flex+4" target="_blank">Flex 4 SDK</a>.</p>
<p><strong>Edit:</strong> mnóstwo screenshot&#8217;ów nowej wersji można znaleźć na <a href="http://www.morearty.com/blog/2008/11/18/new-flex-builder-debugger-features-conditional-breakpoints-function-calls-from-expressions-watchpoints-and-more/" target="_blank">blogu Mike&#8217;a Morearty</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://flex.imrahil.com/2008/11/18/flex-builder-4-gumbo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tour de Flex</title>
		<link>http://flex.imrahil.com/2008/11/17/tour-de-flex/</link>
		<comments>http://flex.imrahil.com/2008/11/17/tour-de-flex/#comments</comments>
		<pubDate>Mon, 17 Nov 2008 10:16:35 +0000</pubDate>
		<dc:creator>Jarek</dc:creator>
				<category><![CDATA[AIR]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Flex Builder]]></category>

		<guid isPermaLink="false">http://flex.imrahil.com/?p=84</guid>
		<description><![CDATA[Jeśli podobał się wam Flex 3 Component Explorer to nie możecie przejść obojętnie obok tej aplikacji! Tour de Flex to aplikacja AIR umożliwiająca przegląd: komponentów wizualnych Flexa czy AIR&#8217;a, sposobów komunikacji z stroną serwerową (HTTPService, WebService czy Remoting), wykorzystania różnorakich API (np.: Twitter, Ebay, Flickr, etc), zewnętrznych komponentów do generowania wykresów, komponentów do map (Google [...]]]></description>
			<content:encoded><![CDATA[<p>Jeśli podobał się wam <a href="http://examples.adobe.com/flex3/componentexplorer/explorer.html" target="_blank">Flex 3 Component Explorer</a> to nie możecie przejść obojętnie obok tej aplikacji! <a href="http://flex.org/tour" target="_blank">Tour de Flex</a> to aplikacja <a href="http://www.adobe.com/products/air/"  class="alinks_links" onclick="return alinks_click(this);" title="Adobe AIR"  rel="external">AIR</a> umożliwiająca przegląd:</p>
<ul>
<li>komponentów wizualnych Flexa czy AIR&#8217;a,</li>
<li>sposobów komunikacji z stroną serwerową (HTTPService, WebService czy Remoting),</li>
<li>wykorzystania różnorakich API (np.: Twitter, Ebay, Flickr, etc),</li>
<li>zewnętrznych komponentów do generowania wykresów,</li>
<li>komponentów do map (Google Maps, Yahoo Maps)</li>
<li>innych komponentów, np.: Degrafa, cała masa od zewnętrznych deweloperów</li>
</ul>
<p>Aktualnie aplikacja posiada 217 przykładów, ale dzięki temu, że posiada wbudowany system aktualizacji liczba ta będzie się prawdopodobnie szybko zwiększać <img src='http://flex.imrahil.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Interfejs <a href="http://flex.org/tour" target="_blank">Tour de Flex</a> pozwala nam na podgląd źródła każdego komponentu czy przykładu oraz szybkie podejrzenie specyfikacji w <a href="http://livedocs.adobe.com/flex/3/langref/" target="_blank">Adobe Flex 3 Language Reference</a> (wyświetlanemu dzięki silnikowi WebKit w AIR). Wbudowany jest także system komentarzy.</p>
<p>Dodatkowo ekipa <a href="http://www.adobe.com/"  class="alinks_links" onclick="return alinks_click(this);" title="Adobe"  rel="external">Adobe</a> Evangelist Team przygotowała wtyczkę 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 umożliwiającą przeglądanie przykładów prosto z poziomu Flex IDE!<br />
Instaluje się ją tak jak każdą inną wtyczkę z adresu <a href="http://tourdeflex.adobe.com/eclipse">http://tourdeflex.adobe.com/eclipse</a>. Po instalacji trzeba tylko podać ręcznie ścieżkę do pliku exe zainstalowanej wcześniej aplikacji Tour de Flex.</p>
<p align="center"><iframe width="216" height="182" frameborder=0 scrolling="no" src="http://tourdeflex.adobe.com/badge/"></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://flex.imrahil.com/2008/11/17/tour-de-flex/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Maps AS3 API i UMap v.0.9.1</title>
		<link>http://flex.imrahil.com/2008/05/14/google-maps-as3-api-i-umap-v091/</link>
		<comments>http://flex.imrahil.com/2008/05/14/google-maps-as3-api-i-umap-v091/#comments</comments>
		<pubDate>Wed, 14 May 2008 21:22:35 +0000</pubDate>
		<dc:creator>Jarek</dc:creator>
				<category><![CDATA[AS 3.0]]></category>
		<category><![CDATA[Flex]]></category>
		<category><![CDATA[Flex Builder]]></category>
		<category><![CDATA[Komponenty]]></category>

		<guid isPermaLink="false">http://flex.imrahil.com/?p=26</guid>
		<description><![CDATA[Google opublikowało dzisiaj Google Maps API for Flash. Całość to biblioteka SWC, którą podłączamy do Flexa (Builder lub SDK) i bezproblemowo budujemy mapkę Google Maps. Więcej przykładów do ściągnięcia z repozytorium projektu. Poniżej mały, naprędce skompilowany przykład (źródło pod prawym przyciskiem myszy) Niestety nie udało mi się odpalić tej biblioteki w aplikacji AIR. Wypluwało dziwny [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: left;">Google opublikowało dzisiaj <a href="http://code.google.com/apis/maps/documentation/flash/" target="_blank">Google Maps API for Flash</a>. Całość to <a href="http://maps.googleapis.com/maps/flash/release/sdk.zip" target="_blank">biblioteka SWC</a>, którą podłączamy do Flexa (Builder lub SDK) i bezproblemowo budujemy mapkę Google Maps. Więcej przykładów do ściągnięcia z <a href="http://code.google.com/p/gmaps-samples-flash/source/browse/trunk/?r=2" target="_blank">repozytorium projektu</a>.</p>
<p style="text-align: left;">Poniżej mały, naprędce skompilowany przykład (źródło pod prawym przyciskiem myszy)</p>
<p style="text-align: center;">
<object width="550" height="400">
<param name="movie" value="http://flex.imrahil.com/files/2008/05/gmaps_api.swf"></param>
<param name="quality" value="high"></param>
<param name="wmode" value="window"></param>
<param name="menu" value="true"></param>
<param name="bgcolor" value="#FFFFFF"></param>
<param name="allowFullScreen" value="true"></param>
<embed type="application/x-shockwave-flash" width="550" height="400" src="http://flex.imrahil.com/files/2008/05/gmaps_api.swf" quality="high" bgcolor="#FFFFFF" wmode="window" menu="true" allowFullScreen="true" ></embed>
</object>
</p>
<p style="text-align: left;">Niestety nie udało mi się odpalić tej biblioteki w aplikacji <a href="http://www.adobe.com/products/air/"  class="alinks_links" onclick="return alinks_click(this);" title="Adobe AIR"  rel="external">AIR</a>. Wypluwało dziwny błąd związany z sandboxem&#8230;</p>
<p style="text-align: left;"><strong>Edit:</strong><br />
znany błąd. można na niego zagłosować na <a href="http://code.google.com/p/gmaps-api-issues/issues/detail?id=322&amp;colspec=ID%20Type%20Status%20Priority%20Introduced%20Fixed%20Summary&amp;start=200" target="_blank">gmaps-api-issues</a>.</p>
<p style="text-align: left;">Ogólnie całość sprawia wrażenie trochę niedopracowanego. Czasem sypie błędami, coś się nie wczytuje, etc</p>
<p style="text-align: left;"><strong>UMap</strong><br />
Jakby tego było mało, chwilę później dostałem informację mailem, że konkurencja z <a href="http://www.afcomponents.com/" target="_blank">AFComponents</a> nie śpi i nie marnuje czasu, tylko pracuje nad kolejnymi wersjami swojej obsługi map Google (jak też i innych), czyli <a href="http://www.afcomponents.com/components/umap_as3/" target="_blank">UMap w najnowszej wersji 0.9.1</a> &#8211; showcase na <a href="http://www.umapper.com" target="_blank">umapper.com</a></p>
<p style="text-align: left;"><strong>Edit:</strong><br />
Wygląda na to, że Panowie z Google i Panowie z AFComponent jednak się lubią. Wskazuje na to przykład na <a href="http://googlemapsapi.blogspot.com/2008/05/introducing-google-maps-api-for-flash.html" target="_blank">oficjalnym blogu Google Maps</a>.</p>
<p style="text-align: left;">Źródło: <a href="http://www.readwriteweb.com/archives/google_maps_flash_api.php" target="_blank">ReadWriteWeb.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://flex.imrahil.com/2008/05/14/google-maps-as3-api-i-umap-v091/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Adobe AIR dla Linuxa</title>
		<link>http://flex.imrahil.com/2008/03/31/adobe-air-dla-linuxa/</link>
		<comments>http://flex.imrahil.com/2008/03/31/adobe-air-dla-linuxa/#comments</comments>
		<pubDate>Mon, 31 Mar 2008 09:27:11 +0000</pubDate>
		<dc:creator>Jarek</dc:creator>
				<category><![CDATA[AIR]]></category>
		<category><![CDATA[Flex Builder]]></category>

		<guid isPermaLink="false">http://flex.imrahil.com/2008/03/31/adobe-air-dla-linuxa/</guid>
		<description><![CDATA[Adobe opublikowało dzisiaj Adobe Integrated Runtime (AIR) w wersji alpha dla Linuxa. Zaktualizowany został także Flex Builder Linux do wersji &#8222;alpha 3&#8243;. Dla przypomnienia: Adobe AIR pozwala na przeniesienie na desktop komputera aplikacji typu RIA stworzonych we Flex&#8216;ie, czy XHTML/AJAX (to dzięki silnikowi renderującemu WebKit). Umożliwia także dostęp do lokalnych plików czy przechowywanie danych offline [...]]]></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 Adobe Integrated Runtime (<a href="http://www.adobe.com/products/air/"  class="alinks_links" onclick="return alinks_click(this);" title="Adobe AIR"  rel="external">AIR</a>) w wersji <a href="http://labs.adobe.com/technologies/air/">alpha dla Linuxa</a>. Zaktualizowany został także <a href="http://labs.adobe.com/technologies/flex/flexbuilder_linux/">Flex Builder  Linux</a> do wersji &#8222;alpha 3&#8243;.</p>
<p>Dla przypomnienia: Adobe AIR pozwala na przeniesienie na desktop komputera aplikacji typu RIA stworzonych we <a href="http://www.adobe.com/products/flex/"  class="alinks_links" onclick="return alinks_click(this);" title="Adobe Flex"  rel="external">Flex</a>&#8216;ie, czy XHTML/AJAX (to dzięki silnikowi renderującemu WebKit). Umożliwia także dostęp do lokalnych plików czy przechowywanie danych offline w wbudowanej bazie SQLite. Wszystko to tworzone raz, a uruchamiane na różnych systemach bez najmniejszych zmian w kodzie.</p>
<p>Aktualnie dostępne są wersje 1.0 dla Windowsa i OSX, zaś ostateczna wersja dla Linuxa spodziewana jest w przeciągu kilku najbliższych miesięcy. W planach są już także wersje 1.1 dla wszystkich trzech systemów.</p>
<p>Więcej info: <a href="http://www.onflex.org/ted/2008/03/hello-airflex-builder-on-linux.php">Ted Patrick</a>, <a href="http://www.readwriteweb.com/archives/adobe_air_linux.php">ReadWriteWeb</a>, <a href="http://blogs.zdnet.com/Stewart/?p=803">ZDNet</a>, <a href="http://www.news.com/8301-10784_3-9906127-7.html">C|Net</a></p>
]]></content:encoded>
			<wfw:commentRss>http://flex.imrahil.com/2008/03/31/adobe-air-dla-linuxa/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
