<?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>Kubiczek devblog &#187; #Actionscript</title>
	<atom:link href="http://blog.kubiczek.eu/tag/actionscript/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.kubiczek.eu</link>
	<description>I&#039;m lovin&#039; it ;)</description>
	<lastBuildDate>Thu, 19 Jan 2012 12:09:03 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Flash + Interner Explorer + SSL = #2032: Stream Error</title>
		<link>http://blog.kubiczek.eu/2009/12/flash-interner-explorer-ssl-2032-stream-error/</link>
		<comments>http://blog.kubiczek.eu/2009/12/flash-interner-explorer-ssl-2032-stream-error/#comments</comments>
		<pubDate>Mon, 21 Dec 2009 20:04:38 +0000</pubDate>
		<dc:creator>Adam Kubiczek</dc:creator>
				<category><![CDATA[Porady i solucje]]></category>
		<category><![CDATA[#Actionscript]]></category>
		<category><![CDATA[#Flash]]></category>

		<guid isPermaLink="false">http://blog.kubiczek.eu/?p=283</guid>
		<description><![CDATA[Problem nie nowy, ale wciąż spotykany. Otóż próba komunikacji aplikacji flashowej z serwerem w bezpiecznym połączeniu HTTPS, w przeglądarce Internet Explorer 6 oraz 7 ma spore szanse zakończyć się niepowodzeniem: #2032: Stream Error. URL: https://www.serwer.pl/internal_api.php Tego typu błąd otrzymamy w aplikacji napisanej w ActionScript3. W starszej wersji 2 języka problem może być jeszcze bardziej irytujący, [...]]]></description>
			<content:encoded><![CDATA[<p>Problem nie nowy, ale wciąż spotykany. Otóż próba komunikacji aplikacji flashowej z serwerem w bezpiecznym połączeniu HTTPS, w przeglądarce Internet Explorer 6 oraz 7 ma spore szanse zakończyć się niepowodzeniem:</p>
<p><code>#2032: Stream Error. URL: https://www.serwer.pl/internal_api.php</code></p>
<p>Tego typu błąd otrzymamy w aplikacji napisanej w ActionScript3. W starszej wersji 2 języka problem może być jeszcze bardziej irytujący, gdyż nie otrzymamy żadnego widocznego komunikatu o błędzie, ale nasz program też nie będzie działać.</p>
<p>Błąd występuje niezależnie od wersji flash playera. Odporny na ten przypadek jest Internet Explorer dopiero w wersji 8. Lekarstwem na bolączkę jest wysłanie w zasadzie dowolnej nieprawidłowej wartości dla nagłówka Pragma, np.:</p>
<p><code>header (”Pragma: internet-explorer-is-my-life”);</code></p>
<p>Co ciekawe, wysłanie nagłówka &#8220;Pragma: no-cache&#8221;, nie dosyć że powoduje opisany wyżej problem, to wcale nie zapobiega cachowaniu zawartości podczas połączenia bez szyfrowania SSL.</p>
<p>Zobacz także:</p>
<p><a href="http://kb2.adobe.com/cps/000/fdc7b5c.html">Nota techniczna Adobe</a><br />
<a href="http://support.microsoft.com/default.aspx?scid=kb;en-us;272359">Powiązany błąd na stronie Microsoftu</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.kubiczek.eu/2009/12/flash-interner-explorer-ssl-2032-stream-error/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tetris &#8211; zagrajmy w to jeszcze raz</title>
		<link>http://blog.kubiczek.eu/2009/01/tetris-zagrajmy-w-to-jeszcze-raz/</link>
		<comments>http://blog.kubiczek.eu/2009/01/tetris-zagrajmy-w-to-jeszcze-raz/#comments</comments>
		<pubDate>Tue, 13 Jan 2009 11:46:14 +0000</pubDate>
		<dc:creator>Adam Kubiczek</dc:creator>
				<category><![CDATA[Praca, projekty, portfolio]]></category>
		<category><![CDATA[#Actionscript]]></category>

		<guid isPermaLink="false">http://kubiczek.net.pl/?p=155</guid>
		<description><![CDATA[Ten rok rozpoczęliśmy od zaprogramowania remaków kilku klasycznych gier. Tetris &#8211; to mój faworyt :) Aby zagrać kliknij w obrazek.]]></description>
			<content:encoded><![CDATA[<p>Ten rok rozpoczęliśmy od zaprogramowania remaków kilku klasycznych gier. Tetris &#8211; to mój faworyt :)</p>
<p><a href="/files/tetris/index.html"><img class="aligncenter size-full wp-image-158" title="tetris" src="/wp-content/uploads/2009/01/tetris.jpg" alt="" width="180" height="365" /></a></p>
<p style="text-align: center;"><em>Aby zagrać kliknij w obrazek.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.kubiczek.eu/2009/01/tetris-zagrajmy-w-to-jeszcze-raz/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Maziagenerator</title>
		<link>http://blog.kubiczek.eu/2008/12/maziagenerator/</link>
		<comments>http://blog.kubiczek.eu/2008/12/maziagenerator/#comments</comments>
		<pubDate>Fri, 05 Dec 2008 13:58:17 +0000</pubDate>
		<dc:creator>Adam Kubiczek</dc:creator>
				<category><![CDATA[Praca, projekty, portfolio]]></category>
		<category><![CDATA[#Actionscript]]></category>

		<guid isPermaLink="false">http://kubiczek.net.pl/?p=153</guid>
		<description><![CDATA[W toku jakże intensywnych prac nad efektami specjalnymi we flashu, przez przypadek stworzyłem maziageneratora &#8211; program, który także tobie pozwoli poczuć się prawdziwym impresjonistą. Tak się kończą zabawy z Bitmap.draw, BlendMode.OVERLAY i krzywymi lissajou: (kliknij i zacznij rysować)]]></description>
			<content:encoded><![CDATA[<p>W toku jakże intensywnych prac nad efektami specjalnymi we flashu, przez przypadek stworzyłem maziageneratora &#8211; program, który także tobie pozwoli poczuć się prawdziwym impresjonistą.</p>
<p>Tak się kończą zabawy z Bitmap.draw, BlendMode.OVERLAY i krzywymi lissajou:</p>
<p><object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" 	id="PlasmaEffect" width="600" height="400"		codebase="http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab"><param name="movie" value="files/maziagenerator/BlurDrawer.swf" /><param name="quality" value="high" /><param name="bgcolor" value="#000000" /><param name="allowScriptAccess" value="sameDomain" /><embed src="files/maziagenerator/BlurDrawer.swf" quality="high" bgcolor="#000000"	width="600" height="400" name="PlasmaEffect" align="middle"	play="true"	loop="false" 	quality="high"	allowScriptAccess="sameDomain"	type="application/x-shockwave-flash"	pluginspage="http://www.adobe.com/go/getflashplayer"></embed></object></p>
<p><i>(kliknij i zacznij rysować)</i></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.kubiczek.eu/2008/12/maziagenerator/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Prosto z Commodore 64: tunel</title>
		<link>http://blog.kubiczek.eu/2008/11/prosto-z-commodore-64-tunel/</link>
		<comments>http://blog.kubiczek.eu/2008/11/prosto-z-commodore-64-tunel/#comments</comments>
		<pubDate>Wed, 26 Nov 2008 13:26:54 +0000</pubDate>
		<dc:creator>Adam Kubiczek</dc:creator>
				<category><![CDATA[Porady i solucje]]></category>
		<category><![CDATA[#Actionscript]]></category>

		<guid isPermaLink="false">http://kubiczek.net.pl/?p=142</guid>
		<description><![CDATA[Kolejny sympatyczny efekt, wykorzystywany bardzo często w produkcjach demosceny to tunel. W milionach różnych wersji, wyewoluował od całkiem prostej realizacji rysowanych okręgów do hiper-super-triple teksturowanego tunelu z dynamicznym oświetleniem, cieniami i bajerami. Realizacja tego efektu we flashu jest jak najbardziej możliwa. Sprawa wygląda prosto: package &#123; import flash.display.Sprite; import flash.events.Event; import flash.display.BitmapData; import flash.display.Bitmap; import [...]]]></description>
			<content:encoded><![CDATA[<p>Kolejny sympatyczny efekt, wykorzystywany bardzo często w produkcjach demosceny to tunel. W milionach różnych wersji, wyewoluował od całkiem prostej realizacji rysowanych okręgów do hiper-super-triple teksturowanego tunelu z dynamicznym oświetleniem, cieniami i bajerami.</p>
<p><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/msfTrJKIMYg&#038;hl=pl&#038;fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/msfTrJKIMYg&#038;hl=pl&#038;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></p>
<p>Realizacja tego efektu we flashu jest jak najbardziej możliwa. Sprawa wygląda prosto:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;">package <span style="color: #66cc66;">&#123;</span>
	<span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">display</span>.<span style="color: #006600;">Sprite</span>;
	<span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">events</span>.<span style="color: #006600;">Event</span>;
	<span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">display</span>.<span style="color: #006600;">BitmapData</span>;
	<span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">display</span>.<span style="color: #006600;">Bitmap</span>;
	<span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">display</span>.<span style="color: #006600;">StageAlign</span>;
	<span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">display</span>.<span style="color: #006600;">StageScaleMode</span>;
&nbsp;
	<span style="color: #66cc66;">&#91;</span>SWF<span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">width</span>=<span style="color: #ff0000;">&quot;500&quot;</span>, <span style="color: #0066CC;">height</span>=<span style="color: #ff0000;">&quot;500&quot;</span>, <span style="color: #0066CC;">backgroundColor</span>=<span style="color: #ff0000;">&quot;0x000000&quot;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#93;</span>
	<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">class</span> TunnelEfect <span style="color: #0066CC;">extends</span> Sprite
	<span style="color: #66cc66;">&#123;</span>
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> w:<span style="color: #0066CC;">int</span> = <span style="color: #cc66cc;">250</span>;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> h:<span style="color: #0066CC;">int</span> = <span style="color: #cc66cc;">250</span>;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> texWidth:<span style="color: #0066CC;">int</span> = <span style="color: #cc66cc;">256</span>;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> texHeight:<span style="color: #0066CC;">int</span> = <span style="color: #cc66cc;">256</span>;
&nbsp;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> texture:<span style="color: #0066CC;">Array</span> = <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #0066CC;">Array</span><span style="color: #66cc66;">&#40;</span>texWidth<span style="color: #66cc66;">&#41;</span>;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> distanceTable:<span style="color: #0066CC;">Array</span> = <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #0066CC;">Array</span><span style="color: #66cc66;">&#40;</span>w <span style="color: #66cc66;">*</span> <span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#41;</span>;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> angleTable:<span style="color: #0066CC;">Array</span> = <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #0066CC;">Array</span><span style="color: #66cc66;">&#40;</span>w <span style="color: #66cc66;">*</span> <span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> animationShift:<span style="color: #0066CC;">Number</span> = <span style="color: #cc66cc;">0</span>;
&nbsp;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> bitmap:BitmapData = <span style="color: #000000; font-weight: bold;">new</span> BitmapData<span style="color: #66cc66;">&#40;</span>w <span style="color: #66cc66;">*</span> <span style="color: #cc66cc;">2</span>, h <span style="color: #66cc66;">*</span> <span style="color: #cc66cc;">2</span>, <span style="color: #000000; font-weight: bold;">false</span>, 0x000000<span style="color: #66cc66;">&#41;</span>;
&nbsp;
		<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> TunnelEfect<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>
		<span style="color: #66cc66;">&#123;</span>
                        <span style="color: #000000; font-weight: bold;">var</span> angle:<span style="color: #0066CC;">int</span>, distance:<span style="color: #0066CC;">int</span>, ratio:<span style="color: #0066CC;">Number</span> = <span style="color: #cc66cc;">32</span>;
&nbsp;
			<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">stage</span>.<span style="color: #0066CC;">scaleMode</span> = StageScaleMode.<span style="color: #006600;">NO_SCALE</span>;
			<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">stage</span>.<span style="color: #0066CC;">align</span> = StageAlign.<span style="color: #006600;">TOP_LEFT</span>;
			<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">stage</span>.<span style="color: #006600;">frameRate</span> = <span style="color: #cc66cc;">20</span>;
			<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">stage</span>.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span>Event.<span style="color: #006600;">ENTER_FRAME</span>, <span style="color: #0066CC;">onEnterFrame</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
			<span style="color: #0066CC;">this</span>.<span style="color: #006600;">addChild</span><span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> Bitmap<span style="color: #66cc66;">&#40;</span>bitmap<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;			
&nbsp;
			<span style="color: #b1b100;">for</span><span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">var</span> x:<span style="color: #0066CC;">int</span> = <span style="color: #cc66cc;">0</span>; x <span style="color: #66cc66;">&lt;</span> texWidth; x++<span style="color: #66cc66;">&#41;</span>
			<span style="color: #66cc66;">&#123;</span>
				texture<span style="color: #66cc66;">&#91;</span>x<span style="color: #66cc66;">&#93;</span> = <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #0066CC;">Array</span><span style="color: #66cc66;">&#40;</span>texHeight<span style="color: #66cc66;">&#41;</span>;
&nbsp;
				<span style="color: #b1b100;">for</span><span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">var</span> y:<span style="color: #0066CC;">int</span> = <span style="color: #cc66cc;">0</span>; y <span style="color: #66cc66;">&lt;</span> texHeight; y++<span style="color: #66cc66;">&#41;</span>
				<span style="color: #66cc66;">&#123;</span>
					texture<span style="color: #66cc66;">&#91;</span>x<span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#91;</span>y<span style="color: #66cc66;">&#93;</span> = <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span>x<span style="color: #66cc66;">&#41;</span> ^ <span style="color: #66cc66;">&#40;</span>y<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">*</span> <span style="color: #cc66cc;">256</span>;
				<span style="color: #66cc66;">&#125;</span>			
			<span style="color: #66cc66;">&#125;</span>			 
&nbsp;
			<span style="color: #b1b100;">for</span><span style="color: #66cc66;">&#40;</span>x = <span style="color: #cc66cc;">0</span>; x <span style="color: #66cc66;">&lt;</span> w <span style="color: #66cc66;">*</span> <span style="color: #cc66cc;">2</span>; x++<span style="color: #66cc66;">&#41;</span>
			<span style="color: #66cc66;">&#123;</span>
				distanceTable<span style="color: #66cc66;">&#91;</span>x<span style="color: #66cc66;">&#93;</span> = <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #0066CC;">Array</span><span style="color: #66cc66;">&#40;</span>h <span style="color: #66cc66;">*</span> <span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#41;</span>;
				angleTable<span style="color: #66cc66;">&#91;</span>x<span style="color: #66cc66;">&#93;</span> = <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #0066CC;">Array</span><span style="color: #66cc66;">&#40;</span>h <span style="color: #66cc66;">*</span> <span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
			    <span style="color: #b1b100;">for</span><span style="color: #66cc66;">&#40;</span>y = <span style="color: #cc66cc;">0</span>; y <span style="color: #66cc66;">&lt;</span> h <span style="color: #66cc66;">*</span> <span style="color: #cc66cc;">2</span>; y++<span style="color: #66cc66;">&#41;</span>
			    <span style="color: #66cc66;">&#123;</span>
			    	distance = <span style="color: #66cc66;">&#40;</span>ratio <span style="color: #66cc66;">*</span> texHeight <span style="color: #66cc66;">/</span> <span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">sqrt</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span>x - w<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">*</span> <span style="color: #66cc66;">&#40;</span>x - w<span style="color: #66cc66;">&#41;</span> + <span style="color: #66cc66;">&#40;</span>y - h<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">*</span> <span style="color: #66cc66;">&#40;</span>y - h<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">%</span> texHeight;
			        angle = <span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">abs</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">0.5</span> <span style="color: #66cc66;">*</span> texWidth <span style="color: #66cc66;">*</span> <span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">atan2</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span>y - h<span style="color: #66cc66;">&#41;</span>, <span style="color: #66cc66;">&#40;</span>x - w<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">/</span> <span style="color: #cc66cc;">3.1416</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
			        distanceTable<span style="color: #66cc66;">&#91;</span>x<span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#91;</span>y<span style="color: #66cc66;">&#93;</span> = distance;
			        angleTable<span style="color: #66cc66;">&#91;</span>x<span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#91;</span>y<span style="color: #66cc66;">&#93;</span> = angle;
			    <span style="color: #66cc66;">&#125;</span>			 
			<span style="color: #66cc66;">&#125;</span>
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">function</span> draw<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span>
		<span style="color: #66cc66;">&#123;</span>
			<span style="color: #000000; font-weight: bold;">var</span> shiftX:<span style="color: #0066CC;">int</span>, shiftY:<span style="color: #0066CC;">int</span>, shiftLookX:<span style="color: #0066CC;">int</span>, shiftLookY:<span style="color: #0066CC;">int</span>, <span style="color: #0066CC;">color</span>:<span style="color: #0066CC;">Number</span>;
&nbsp;
			shiftX = <span style="color: #66cc66;">&#40;</span>texWidth <span style="color: #66cc66;">*</span> <span style="color: #cc66cc;">1.0</span> <span style="color: #66cc66;">*</span> animationShift<span style="color: #66cc66;">&#41;</span>;
			shiftY = <span style="color: #66cc66;">&#40;</span>texHeight <span style="color: #66cc66;">*</span> <span style="color: #cc66cc;">0.25</span> <span style="color: #66cc66;">*</span> animationShift<span style="color: #66cc66;">&#41;</span>;  
&nbsp;
			shiftLookX = w <span style="color: #66cc66;">/</span> <span style="color: #cc66cc;">2</span> + <span style="color: #66cc66;">&#40;</span>w <span style="color: #66cc66;">/</span> <span style="color: #cc66cc;">2</span> <span style="color: #66cc66;">*</span> <span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">cos</span><span style="color: #66cc66;">&#40;</span>animationShift<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
	        shiftLookY = h <span style="color: #66cc66;">/</span> <span style="color: #cc66cc;">2</span> + <span style="color: #66cc66;">&#40;</span>h <span style="color: #66cc66;">/</span> <span style="color: #cc66cc;">2</span> <span style="color: #66cc66;">*</span> <span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">sin</span><span style="color: #66cc66;">&#40;</span>animationShift <span style="color: #66cc66;">*</span> <span style="color: #cc66cc;">2.0</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;	
&nbsp;
	        <span style="color: #b1b100;">for</span><span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">var</span> x:<span style="color: #0066CC;">int</span> = <span style="color: #cc66cc;">0</span>; x <span style="color: #66cc66;">&lt;</span> w; x++<span style="color: #66cc66;">&#41;</span>
	        <span style="color: #66cc66;">&#123;</span>
		        <span style="color: #b1b100;">for</span><span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">var</span> y:<span style="color: #0066CC;">int</span> = <span style="color: #cc66cc;">0</span>; y <span style="color: #66cc66;">&lt;</span> h; y++<span style="color: #66cc66;">&#41;</span>
		        <span style="color: #66cc66;">&#123;</span>
				    <span style="color: #0066CC;">color</span> = texture<span style="color: #66cc66;">&#91;</span><span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">abs</span><span style="color: #66cc66;">&#40;</span>distanceTable<span style="color: #66cc66;">&#91;</span>x + shiftLookX<span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#91;</span>y + shiftLookY<span style="color: #66cc66;">&#93;</span> + shiftX<span style="color: #66cc66;">&#41;</span>  <span style="color: #66cc66;">%</span> texWidth<span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#91;</span><span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">abs</span><span style="color: #66cc66;">&#40;</span>angleTable<span style="color: #66cc66;">&#91;</span>x + shiftLookX<span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#91;</span>y + shiftLookY<span style="color: #66cc66;">&#93;</span> + shiftY<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">%</span> texHeight<span style="color: #66cc66;">&#93;</span>;
		        	bitmap.<span style="color: #006600;">setPixel</span><span style="color: #66cc66;">&#40;</span>x <span style="color: #66cc66;">*</span> <span style="color: #cc66cc;">2</span>, y <span style="color: #66cc66;">*</span> <span style="color: #cc66cc;">2</span>, <span style="color: #0066CC;">color</span><span style="color: #66cc66;">&#41;</span>;
		        <span style="color: #66cc66;">&#125;</span>			
			<span style="color: #66cc66;">&#125;</span>
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">function</span> <span style="color: #0066CC;">onEnterFrame</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">e</span>:Event<span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span>
		<span style="color: #66cc66;">&#123;</span>
			draw<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;	
			animationShift += <span style="color: #cc66cc;">0.05</span>;
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
	<span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span></pre></div></div>

<p>A oto i gotowy tunel:</p>
<p><object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" 	id="PlasmaEffect" width="500" height="500"		codebase="http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab"><param name="movie" value="/files/tunneleffect/TunnelEfect.swf" /><param name="quality" value="high" /><param name="bgcolor" value="#000000" /><param name="allowScriptAccess" value="sameDomain" /><embed src="/files/tunneleffect/TunnelEfect.swf" quality="high" bgcolor="#000000"	width="500" height="500" name="PlasmaEffect" align="middle"	play="true"	loop="false" 	quality="high"	allowScriptAccess="sameDomain"	type="application/x-shockwave-flash"	pluginspage="http://www.adobe.com/go/getflashplayer"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.kubiczek.eu/2008/11/prosto-z-commodore-64-tunel/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Prosto z Commodore 64: efekt plazmy</title>
		<link>http://blog.kubiczek.eu/2008/11/plazma-efekt-prosto-z-commodore-64/</link>
		<comments>http://blog.kubiczek.eu/2008/11/plazma-efekt-prosto-z-commodore-64/#comments</comments>
		<pubDate>Tue, 25 Nov 2008 08:42:53 +0000</pubDate>
		<dc:creator>Adam Kubiczek</dc:creator>
				<category><![CDATA[Porady i solucje]]></category>
		<category><![CDATA[#Actionscript]]></category>

		<guid isPermaLink="false">http://kubiczek.net.pl/?p=137</guid>
		<description><![CDATA[Od pewnego czasu wracam wspomnieniami do czasów demosceny, a od kilku dni odświeżam stare umiejętności i przekładam to, co kiedyś robiło się w assemblerze, na Flasha i Actionscript. Jednym z wynalazków koderów z demosceny, był efekt plazmy. Opisowo efekt ten polegał na uzyskaniu interesujących graficznie animacji &#8220;rozlewających&#8221; się kolorów. Ponieważ jednak ówczesne komputery były zbyt [...]]]></description>
			<content:encoded><![CDATA[<p>Od pewnego czasu wracam wspomnieniami do czasów demosceny, a od kilku dni odświeżam stare umiejętności i przekładam to, co kiedyś robiło się w assemblerze, na Flasha i Actionscript. Jednym z wynalazków koderów z demosceny, był efekt plazmy. </p>
<p>Opisowo efekt ten polegał na uzyskaniu interesujących graficznie animacji &#8220;rozlewających&#8221; się kolorów. Ponieważ jednak ówczesne komputery były zbyt wolne na obliczanie co ramke wartości każdego pixela na ekranie, koderzy użyli jednej ze swoich sztuczek: tylko raz na starcie rysowało się obraz pixeli na ekranie, a potem podmieniano jedynie paletę kolorów używaną przez układ graficzny. W ten sposób nawet ZX-Spectrum dawało radę:</p>
<p><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/gz-DUdXeD-0&#038;hl=en&#038;fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/gz-DUdXeD-0&#038;hl=en&#038;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></p>
<p>W takim razie, skoro ZX-Spectrum ze swoim <a href="http://pl.wikipedia.org/wiki/Zilog_Z80">Zilogiem Z80</a> dawało radę, jak poradzi sobie flash na procesorach taktowanych gigaherzami? :) Nie możemy niestety operować bezpośrednio na palecie ( zabawa z ColorTransform również odpada), więc jednak musimy za każdym razem odrysować wszystkie pixele na ekranie. Spróbujmy:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;">package <span style="color: #66cc66;">&#123;</span>
	<span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">display</span>.<span style="color: #006600;">Sprite</span>;
	<span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">display</span>.<span style="color: #006600;">StageScaleMode</span>;
	<span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">display</span>.<span style="color: #006600;">StageAlign</span>;
	<span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">events</span>.<span style="color: #006600;">Event</span>;
	<span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">display</span>.<span style="color: #006600;">BitmapData</span>;
&nbsp;
	<span style="color: #66cc66;">&#91;</span>SWF<span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">width</span>=<span style="color: #ff0000;">&quot;300&quot;</span>, <span style="color: #0066CC;">height</span>=<span style="color: #ff0000;">&quot;300&quot;</span>, <span style="color: #0066CC;">backgroundColor</span>=<span style="color: #ff0000;">&quot;0x000000&quot;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#93;</span>
	<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">class</span> PlasmaEffect <span style="color: #0066CC;">extends</span> Sprite
	<span style="color: #66cc66;">&#123;</span>
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> w:<span style="color: #0066CC;">int</span> = <span style="color: #cc66cc;">150</span>;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> h:<span style="color: #0066CC;">int</span> = <span style="color: #cc66cc;">150</span>;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> colors:<span style="color: #0066CC;">Array</span> = <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #0066CC;">Array</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> plasma:<span style="color: #0066CC;">Array</span> = <span style="color: #66cc66;">&#91;</span>w<span style="color: #66cc66;">&#93;</span>;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> paletteShift:<span style="color: #0066CC;">int</span>;
&nbsp;
		<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> PlasmaEffect<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>
		<span style="color: #66cc66;">&#123;</span>
			<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">stage</span>.<span style="color: #0066CC;">scaleMode</span> = StageScaleMode.<span style="color: #006600;">NO_SCALE</span>;
			<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">stage</span>.<span style="color: #0066CC;">align</span> = StageAlign.<span style="color: #006600;">TOP_LEFT</span>;
			<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">stage</span>.<span style="color: #006600;">frameRate</span> = <span style="color: #cc66cc;">10</span>;
			<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">stage</span>.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span>Event.<span style="color: #006600;">ENTER_FRAME</span>, <span style="color: #0066CC;">onEnterFrame</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
			generatePalette<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
			generatePlasma<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">function</span> draw<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span>
		<span style="color: #66cc66;">&#123;</span>
			<span style="color: #0066CC;">this</span>.<span style="color: #006600;">graphics</span>.<span style="color: #0066CC;">clear</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
	        <span style="color: #b1b100;">for</span><span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">var</span> x:<span style="color: #0066CC;">int</span> = <span style="color: #cc66cc;">0</span>; x <span style="color: #66cc66;">&lt;</span> w; x++<span style="color: #66cc66;">&#41;</span>
	        <span style="color: #b1b100;">for</span><span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">var</span> y:<span style="color: #0066CC;">int</span> = <span style="color: #cc66cc;">0</span>; y <span style="color: #66cc66;">&lt;</span> h; y++<span style="color: #66cc66;">&#41;</span>
	        <span style="color: #66cc66;">&#123;</span>
	            <span style="color: #0066CC;">this</span>.<span style="color: #006600;">graphics</span>.<span style="color: #0066CC;">lineStyle</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span>, colors<span style="color: #66cc66;">&#91;</span><span style="color: #66cc66;">&#40;</span>plasma<span style="color: #66cc66;">&#91;</span>x<span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#91;</span>y<span style="color: #66cc66;">&#93;</span> + paletteShift<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">%</span> <span style="color: #cc66cc;">256</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span>;
	            <span style="color: #0066CC;">this</span>.<span style="color: #006600;">graphics</span>.<span style="color: #0066CC;">moveTo</span><span style="color: #66cc66;">&#40;</span>x <span style="color: #66cc66;">*</span> <span style="color: #cc66cc;">2</span>, y <span style="color: #66cc66;">*</span> <span style="color: #cc66cc;">2</span><span style="color: #66cc66;">&#41;</span>;
	            <span style="color: #0066CC;">this</span>.<span style="color: #006600;">graphics</span>.<span style="color: #0066CC;">lineTo</span><span style="color: #66cc66;">&#40;</span>x <span style="color: #66cc66;">*</span> <span style="color: #cc66cc;">2</span>, y <span style="color: #66cc66;">*</span> <span style="color: #cc66cc;">2</span> + <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span>;  
	        <span style="color: #66cc66;">&#125;</span>			
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
&nbsp;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">function</span> generatePlasma<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span>
		<span style="color: #66cc66;">&#123;</span>
			<span style="color: #000000; font-weight: bold;">var</span> colorIndex:<span style="color: #0066CC;">int</span>;
&nbsp;
		    <span style="color: #b1b100;">for</span><span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">var</span> x:<span style="color: #0066CC;">int</span> = <span style="color: #cc66cc;">0</span>; x <span style="color: #66cc66;">&lt;</span> w; x++<span style="color: #66cc66;">&#41;</span>
		    <span style="color: #66cc66;">&#123;</span>
		    	plasma<span style="color: #66cc66;">&#91;</span>x<span style="color: #66cc66;">&#93;</span> = <span style="color: #66cc66;">&#91;</span>h<span style="color: #66cc66;">&#93;</span>;
&nbsp;
			    <span style="color: #b1b100;">for</span><span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">var</span> y:<span style="color: #0066CC;">int</span> = <span style="color: #cc66cc;">0</span>; y <span style="color: #66cc66;">&lt;</span> h; y++<span style="color: #66cc66;">&#41;</span>
			    <span style="color: #66cc66;">&#123;</span>		    	
			        colorIndex =
			        <span style="color: #66cc66;">&#40;</span>
			              <span style="color: #cc66cc;">128.0</span> + <span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">128.0</span> <span style="color: #66cc66;">*</span> <span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">sin</span><span style="color: #66cc66;">&#40;</span>x <span style="color: #66cc66;">/</span> <span style="color: #cc66cc;">16.0</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
			            + <span style="color: #cc66cc;">128.0</span> + <span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">128.0</span> <span style="color: #66cc66;">*</span> <span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">sin</span><span style="color: #66cc66;">&#40;</span>y <span style="color: #66cc66;">/</span> <span style="color: #cc66cc;">32.0</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
			            + <span style="color: #cc66cc;">128.0</span> + <span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">128.0</span> <span style="color: #66cc66;">*</span> <span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">sin</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">sqrt</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span>x - w <span style="color: #66cc66;">/</span> <span style="color: #cc66cc;">2.0</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">*</span> <span style="color: #66cc66;">&#40;</span>x - w <span style="color: #66cc66;">/</span> <span style="color: #cc66cc;">2.0</span><span style="color: #66cc66;">&#41;</span> + <span style="color: #66cc66;">&#40;</span>y - h <span style="color: #66cc66;">/</span> <span style="color: #cc66cc;">2.0</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">*</span> <span style="color: #66cc66;">&#40;</span>y - h <span style="color: #66cc66;">/</span> <span style="color: #cc66cc;">2.0</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">/</span> <span style="color: #cc66cc;">8.0</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
			            + <span style="color: #cc66cc;">128.0</span> + <span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">128.0</span> <span style="color: #66cc66;">*</span> <span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">sin</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">sqrt</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span>x <span style="color: #66cc66;">*</span> x + y <span style="color: #66cc66;">*</span> y<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">/</span> <span style="color: #cc66cc;">8.0</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
			        <span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">/</span> <span style="color: #cc66cc;">4</span>;			        
&nbsp;
			        plasma<span style="color: #66cc66;">&#91;</span>x<span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#91;</span>y<span style="color: #66cc66;">&#93;</span> = colorIndex;       
			    <span style="color: #66cc66;">&#125;</span>			
		    <span style="color: #66cc66;">&#125;</span>
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">function</span> generatePalette<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span>
		<span style="color: #66cc66;">&#123;</span>
			<span style="color: #000000; font-weight: bold;">var</span> r:<span style="color: #0066CC;">int</span>;
			<span style="color: #000000; font-weight: bold;">var</span> g:<span style="color: #0066CC;">int</span>;
			<span style="color: #000000; font-weight: bold;">var</span> b:<span style="color: #0066CC;">int</span>;
&nbsp;
			<span style="color: #b1b100;">for</span><span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">var</span> x:<span style="color: #0066CC;">int</span> = <span style="color: #cc66cc;">0</span>; x <span style="color: #66cc66;">&lt;</span> <span style="color: #cc66cc;">256</span>; x++<span style="color: #66cc66;">&#41;</span>
			<span style="color: #66cc66;">&#123;</span>
			    r = <span style="color: #cc66cc;">128.0</span> + <span style="color: #cc66cc;">128</span> <span style="color: #66cc66;">*</span> <span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">sin</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">3.1415</span> <span style="color: #66cc66;">*</span> x <span style="color: #66cc66;">/</span> <span style="color: #cc66cc;">16.0</span> <span style="color: #66cc66;">&#41;</span>;
			    g = <span style="color: #cc66cc;">128.0</span> + <span style="color: #cc66cc;">128</span> <span style="color: #66cc66;">*</span> <span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">sin</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">3.1415</span> <span style="color: #66cc66;">*</span> x <span style="color: #66cc66;">/</span> <span style="color: #cc66cc;">128.0</span> <span style="color: #66cc66;">&#41;</span>;
			    b = <span style="color: #cc66cc;">0</span>;
			    colors.<span style="color: #0066CC;">push</span><span style="color: #66cc66;">&#40;</span>r <span style="color: #66cc66;">*</span> <span style="color: #cc66cc;">256</span> <span style="color: #66cc66;">*</span> <span style="color: #cc66cc;">256</span> + g <span style="color: #66cc66;">*</span> <span style="color: #cc66cc;">256</span> + b<span style="color: #66cc66;">&#41;</span>;
			<span style="color: #66cc66;">&#125;</span> 			
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">function</span> <span style="color: #0066CC;">onEnterFrame</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">e</span>:Event<span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span>
		<span style="color: #66cc66;">&#123;</span>
			draw<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;	
			paletteShift += <span style="color: #cc66cc;">1</span>;
		<span style="color: #66cc66;">&#125;</span>
	<span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span></pre></div></div>

<p>No cóż, na moim, całkiem współczesnym komputerze nie daje rady &#8211; ledwo 5 klatek na sekundę, i macierz pixeli o rozmiarach 150&#215;150. Winowajcą jest metoda lineTo &#8211; zbyt wolna jak na nasze potrzeby.<br />
Ale, drobna zmiana kodu, zastąpienie rysowanie poprzez graphics.lineTo na bezpośrednie ustawianie pixelów bitmapy:</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;">package <span style="color: #66cc66;">&#123;</span>
	<span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">display</span>.<span style="color: #006600;">Sprite</span>;
	<span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">display</span>.<span style="color: #006600;">StageScaleMode</span>;
	<span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">display</span>.<span style="color: #006600;">StageAlign</span>;
	<span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">events</span>.<span style="color: #006600;">Event</span>;
&nbsp;
	<span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">display</span>.<span style="color: #006600;">BitmapData</span>;
	<span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">display</span>.<span style="color: #006600;">Bitmap</span>;
&nbsp;
	<span style="color: #66cc66;">&#91;</span>SWF<span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">width</span>=<span style="color: #ff0000;">&quot;300&quot;</span>, <span style="color: #0066CC;">height</span>=<span style="color: #ff0000;">&quot;300&quot;</span>, <span style="color: #0066CC;">backgroundColor</span>=<span style="color: #ff0000;">&quot;0x000000&quot;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#93;</span>
	<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">class</span> PlasmaEffect <span style="color: #0066CC;">extends</span> Sprite
	<span style="color: #66cc66;">&#123;</span>
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> w:<span style="color: #0066CC;">int</span> = <span style="color: #cc66cc;">300</span>;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> h:<span style="color: #0066CC;">int</span> = <span style="color: #cc66cc;">300</span>;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> colors:<span style="color: #0066CC;">Array</span> = <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #0066CC;">Array</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> plasma:<span style="color: #0066CC;">Array</span> = <span style="color: #66cc66;">&#91;</span>w<span style="color: #66cc66;">&#93;</span>;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> paletteShift:<span style="color: #0066CC;">int</span>;
&nbsp;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">var</span> bitmap:BitmapData = <span style="color: #000000; font-weight: bold;">new</span> BitmapData<span style="color: #66cc66;">&#40;</span>w, h, <span style="color: #000000; font-weight: bold;">false</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
		<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> PlasmaEffect<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>
		<span style="color: #66cc66;">&#123;</span>
			<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">stage</span>.<span style="color: #0066CC;">scaleMode</span> = StageScaleMode.<span style="color: #006600;">NO_SCALE</span>;
			<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">stage</span>.<span style="color: #0066CC;">align</span> = StageAlign.<span style="color: #006600;">TOP_LEFT</span>;
			<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">stage</span>.<span style="color: #006600;">frameRate</span> = <span style="color: #cc66cc;">20</span>;
			<span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">stage</span>.<span style="color: #006600;">addEventListener</span><span style="color: #66cc66;">&#40;</span>Event.<span style="color: #006600;">ENTER_FRAME</span>, <span style="color: #0066CC;">onEnterFrame</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
			<span style="color: #0066CC;">this</span>.<span style="color: #006600;">addChild</span><span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> Bitmap<span style="color: #66cc66;">&#40;</span>bitmap<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
			generatePalette<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
			generatePlasma<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">function</span> draw<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span>
		<span style="color: #66cc66;">&#123;</span>
			<span style="color: #0066CC;">this</span>.<span style="color: #006600;">graphics</span>.<span style="color: #0066CC;">clear</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
	        <span style="color: #b1b100;">for</span><span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">var</span> x:<span style="color: #0066CC;">int</span> = <span style="color: #cc66cc;">0</span>; x <span style="color: #66cc66;">&lt;</span> w; x++<span style="color: #66cc66;">&#41;</span>
	        <span style="color: #b1b100;">for</span><span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">var</span> y:<span style="color: #0066CC;">int</span> = <span style="color: #cc66cc;">0</span>; y <span style="color: #66cc66;">&lt;</span> h; y++<span style="color: #66cc66;">&#41;</span>
	        <span style="color: #66cc66;">&#123;</span>
	        	bitmap.<span style="color: #006600;">setPixel</span><span style="color: #66cc66;">&#40;</span>x, y, colors<span style="color: #66cc66;">&#91;</span><span style="color: #66cc66;">&#40;</span>plasma<span style="color: #66cc66;">&#91;</span>x<span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#91;</span>y<span style="color: #66cc66;">&#93;</span> + paletteShift<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">%</span> <span style="color: #cc66cc;">256</span><span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#41;</span>;
	            <span style="color: #808080; font-style: italic;">//this.graphics.lineStyle(1, colors[(plasma[x][y] + paletteShift) % 256]);</span>
	            <span style="color: #808080; font-style: italic;">//this.graphics.moveTo(x * 2, y * 2);</span>
	            <span style="color: #808080; font-style: italic;">//this.graphics.lineTo(x * 2, y * 2 + 1);  </span>
	        <span style="color: #66cc66;">&#125;</span>			
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
&nbsp;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">function</span> generatePlasma<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span>
		<span style="color: #66cc66;">&#123;</span>
			<span style="color: #000000; font-weight: bold;">var</span> colorIndex:<span style="color: #0066CC;">int</span>;
&nbsp;
		    <span style="color: #b1b100;">for</span><span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">var</span> x:<span style="color: #0066CC;">int</span> = <span style="color: #cc66cc;">0</span>; x <span style="color: #66cc66;">&lt;</span> w; x++<span style="color: #66cc66;">&#41;</span>
		    <span style="color: #66cc66;">&#123;</span>
		    	plasma<span style="color: #66cc66;">&#91;</span>x<span style="color: #66cc66;">&#93;</span> = <span style="color: #66cc66;">&#91;</span>h<span style="color: #66cc66;">&#93;</span>;
&nbsp;
			    <span style="color: #b1b100;">for</span><span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">var</span> y:<span style="color: #0066CC;">int</span> = <span style="color: #cc66cc;">0</span>; y <span style="color: #66cc66;">&lt;</span> h; y++<span style="color: #66cc66;">&#41;</span>
			    <span style="color: #66cc66;">&#123;</span>		    	
			        colorIndex =
			        <span style="color: #66cc66;">&#40;</span>
			              <span style="color: #cc66cc;">128.0</span> + <span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">128.0</span> <span style="color: #66cc66;">*</span> <span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">sin</span><span style="color: #66cc66;">&#40;</span>x <span style="color: #66cc66;">/</span> <span style="color: #cc66cc;">16.0</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
			            + <span style="color: #cc66cc;">128.0</span> + <span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">128.0</span> <span style="color: #66cc66;">*</span> <span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">sin</span><span style="color: #66cc66;">&#40;</span>y <span style="color: #66cc66;">/</span> <span style="color: #cc66cc;">32.0</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
			            + <span style="color: #cc66cc;">128.0</span> + <span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">128.0</span> <span style="color: #66cc66;">*</span> <span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">sin</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">sqrt</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span>x - w <span style="color: #66cc66;">/</span> <span style="color: #cc66cc;">2.0</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">*</span> <span style="color: #66cc66;">&#40;</span>x - w <span style="color: #66cc66;">/</span> <span style="color: #cc66cc;">2.0</span><span style="color: #66cc66;">&#41;</span> + <span style="color: #66cc66;">&#40;</span>y - h <span style="color: #66cc66;">/</span> <span style="color: #cc66cc;">2.0</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">*</span> <span style="color: #66cc66;">&#40;</span>y - h <span style="color: #66cc66;">/</span> <span style="color: #cc66cc;">2.0</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">/</span> <span style="color: #cc66cc;">8.0</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
			            + <span style="color: #cc66cc;">128.0</span> + <span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">128.0</span> <span style="color: #66cc66;">*</span> <span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">sin</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">sqrt</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span>x <span style="color: #66cc66;">*</span> x + y <span style="color: #66cc66;">*</span> y<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">/</span> <span style="color: #cc66cc;">8.0</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
			        <span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">/</span> <span style="color: #cc66cc;">4</span>;			        
&nbsp;
			        plasma<span style="color: #66cc66;">&#91;</span>x<span style="color: #66cc66;">&#93;</span><span style="color: #66cc66;">&#91;</span>y<span style="color: #66cc66;">&#93;</span> = colorIndex;       
			    <span style="color: #66cc66;">&#125;</span>			
		    <span style="color: #66cc66;">&#125;</span>
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">function</span> generatePalette<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span>
		<span style="color: #66cc66;">&#123;</span>
			<span style="color: #000000; font-weight: bold;">var</span> r:<span style="color: #0066CC;">int</span>;
			<span style="color: #000000; font-weight: bold;">var</span> g:<span style="color: #0066CC;">int</span>;
			<span style="color: #000000; font-weight: bold;">var</span> b:<span style="color: #0066CC;">int</span>;
&nbsp;
			<span style="color: #b1b100;">for</span><span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">var</span> x:<span style="color: #0066CC;">int</span> = <span style="color: #cc66cc;">0</span>; x <span style="color: #66cc66;">&lt;</span> <span style="color: #cc66cc;">256</span>; x++<span style="color: #66cc66;">&#41;</span>
			<span style="color: #66cc66;">&#123;</span>
			    r = <span style="color: #cc66cc;">128.0</span> + <span style="color: #cc66cc;">128</span> <span style="color: #66cc66;">*</span> <span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">sin</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">3.1415</span> <span style="color: #66cc66;">*</span> x <span style="color: #66cc66;">/</span> <span style="color: #cc66cc;">16.0</span> <span style="color: #66cc66;">&#41;</span>;
			    g = <span style="color: #cc66cc;">128.0</span> + <span style="color: #cc66cc;">128</span> <span style="color: #66cc66;">*</span> <span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">sin</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">3.1415</span> <span style="color: #66cc66;">*</span> x <span style="color: #66cc66;">/</span> <span style="color: #cc66cc;">128.0</span> <span style="color: #66cc66;">&#41;</span>;
			    b = <span style="color: #cc66cc;">0</span>;
			    colors.<span style="color: #0066CC;">push</span><span style="color: #66cc66;">&#40;</span>r <span style="color: #66cc66;">*</span> <span style="color: #cc66cc;">256</span> <span style="color: #66cc66;">*</span> <span style="color: #cc66cc;">256</span> + g <span style="color: #66cc66;">*</span> <span style="color: #cc66cc;">256</span> + b<span style="color: #66cc66;">&#41;</span>;
			<span style="color: #66cc66;">&#125;</span> 			
		<span style="color: #66cc66;">&#125;</span>
&nbsp;
		<span style="color: #0066CC;">private</span> <span style="color: #000000; font-weight: bold;">function</span> <span style="color: #0066CC;">onEnterFrame</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">e</span>:Event<span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span>
		<span style="color: #66cc66;">&#123;</span>
			draw<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;	
			paletteShift += <span style="color: #cc66cc;">1</span>;
		<span style="color: #66cc66;">&#125;</span>
	<span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span></pre></div></div>

<p>i&#8230; sukces! :) Tym razem macierz 300&#215;300 i 20 klatek na sekundę:</p>
<p>  	<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" 	id="PlasmaEffect" width="300" height="300"		codebase="http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab"><param name="movie" value="/files/plasmaeffect/PlasmaEffect.swf" /><param name="quality" value="high" /><param name="bgcolor" value="#000000" /><param name="allowScriptAccess" value="sameDomain" /><embed src="/files/plasmaeffect/PlasmaEffect.swf" quality="high" bgcolor="#000000"	width="300" height="300" name="PlasmaEffect" align="middle"	play="true"	loop="false" 	quality="high"	allowScriptAccess="sameDomain"	type="application/x-shockwave-flash"	pluginspage="http://www.adobe.com/go/getflashplayer"></embed></object></p>
<p>daje radę :)</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.kubiczek.eu/2008/11/plazma-efekt-prosto-z-commodore-64/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Kalkulator położenia słońca</title>
		<link>http://blog.kubiczek.eu/2008/11/kalkulator-polozenia-slonca/</link>
		<comments>http://blog.kubiczek.eu/2008/11/kalkulator-polozenia-slonca/#comments</comments>
		<pubDate>Fri, 21 Nov 2008 09:59:37 +0000</pubDate>
		<dc:creator>Adam Kubiczek</dc:creator>
				<category><![CDATA[Praca, projekty, portfolio]]></category>
		<category><![CDATA[#Actionscript]]></category>

		<guid isPermaLink="false">http://kubiczek.net.pl/?p=133</guid>
		<description><![CDATA[Do większego projektu, potrzebowałem napisać program obliczający położenie (wysokość i azymut) słońca na nieboskłonie. O tym &#8220;większym&#8221; projekcie mam nadzieję, że napiszę niebawem, a na razie oddaję do dyspozycji gotowy kalkulator położenia słońca &#8211; parametry wejściowe to lokalizacja, data i godzina; wynik &#8211; azymut i wysokość. Program napisany w Adobe Flex.]]></description>
			<content:encoded><![CDATA[<p>Do większego projektu, potrzebowałem napisać program obliczający położenie (wysokość i azymut) słońca na nieboskłonie. O tym &#8220;większym&#8221; projekcie mam nadzieję, że napiszę niebawem, a na razie oddaję do dyspozycji gotowy kalkulator położenia słońca &#8211; parametry wejściowe to lokalizacja, data i godzina; wynik &#8211; azymut i wysokość. Program napisany w Adobe Flex.</p>
<p><object id="Suncalc" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="250" height="550" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="quality" value="high" /><param name="bgcolor" value="#869ca7" /><param name="allowScriptAccess" value="sameDomain" /><param name="src" value="/files/suncalc/Suncalc.swf" /><param name="name" value="Suncalc" /><param name="align" value="middle" /><embed id="Suncalc" type="application/x-shockwave-flash" width="250" height="550" src="/files/suncalc/Suncalc.swf" align="middle" name="Suncalc" allowscriptaccess="sameDomain" bgcolor="#869ca7" quality="high"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.kubiczek.eu/2008/11/kalkulator-polozenia-slonca/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>FemtoPlayer &#8211; mini free mp3 flash player</title>
		<link>http://blog.kubiczek.eu/2008/11/femtoplayer-mini-free-mp3-flash-player/</link>
		<comments>http://blog.kubiczek.eu/2008/11/femtoplayer-mini-free-mp3-flash-player/#comments</comments>
		<pubDate>Mon, 17 Nov 2008 13:01:18 +0000</pubDate>
		<dc:creator>Adam Kubiczek</dc:creator>
				<category><![CDATA[Gotowe skrypty i programy]]></category>
		<category><![CDATA[#Actionscript]]></category>
		<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://kubiczek.net.pl/?p=120</guid>
		<description><![CDATA[Kilka dni temu szukałem malutkiego mp3 playera, który wyświetlał by jedynie ikonkę z przyciskiem play i odgrywał wskazany dźwięk mp3. Poszukiwania w googlu dały kilka rezultatów, ale każdy z nich albo był &#8220;za bardzo&#8221;, albo miał złą licencję. Zamiast tracić dalej czas napisałem te kilkanaście linijek kodu i stworzyłem swój własny FemtoPlayer &#8211; Femto to [...]]]></description>
			<content:encoded><![CDATA[<p>Kilka dni temu szukałem malutkiego mp3 playera, który wyświetlał by jedynie ikonkę z przyciskiem play i odgrywał wskazany dźwięk mp3. Poszukiwania w googlu dały kilka rezultatów, ale każdy z nich albo był &#8220;za bardzo&#8221;, albo miał złą licencję. Zamiast tracić dalej czas napisałem te kilkanaście linijek kodu i stworzyłem swój własny FemtoPlayer &#8211; Femto to brzmi dumnie ;)</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="20" height="25" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="FlashVars" value="file=/files/femtoplayer/test.mp3&amp;autoplay=false" /><param name="wmode" value="transparent" /><param name="src" value="/files/femtoplayer/femtoplayer.swf" /><param name="flashvars" value="file=/files/femtoplayer/test.mp3&amp;autoplay=false" /><embed type="application/x-shockwave-flash" width="20" height="25" src="/files/femtoplayer/femtoplayer.swf" wmode="transparent" flashvars="file=/files/femtoplayer/test.mp3&amp;autoplay=false"></embed></object></p>
<p>Parametry:</p>
<pre>file = pathToMP3 //ścieżka do pliku mp3
autoplay = true|false //czy automatycznie odgrywać dźwięk po wczytaniu</pre>
<p>Przykład użycia:</p>

<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">&lt;object classid=&quot;clsid:d27cdb6e-ae6d-11cf-96b8-444553540000&quot; width=&quot;20&quot; height=&quot;25&quot; codebase=&quot;http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0&quot;&gt;&lt;param name=&quot;FlashVars&quot; value=&quot;file=test.mp3&amp;amp;autoplay=true&quot; /&gt;&lt;param name=&quot;src&quot; value=&quot;FemtoPlayer.swf&quot; /&gt;&lt;param name=&quot;wmode&quot; value=&quot;transparent&quot; /&gt;&lt;param name=&quot;flashvars&quot; value=&quot;file=test.mp3&amp;amp;autoplay=true&quot; /&gt;&lt;embed type=&quot;application/x-shockwave-flash&quot; width=&quot;20&quot; height=&quot;25&quot; src=&quot;FemtoPlayer.swf&quot; wmode=&quot;transparent&quot; flashvars=&quot;file=test.mp3&amp;amp;autoplay=true&quot;&gt;&lt;/embed&gt;&lt;/object&gt;</pre></div></div>

<p>SWF do pobrania: <a href="/files/femtoplayer/femtoplayer.zip">download</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.kubiczek.eu/2008/11/femtoplayer-mini-free-mp3-flash-player/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>getURL w ActionScript 3</title>
		<link>http://blog.kubiczek.eu/2008/10/geturl-w-actionscript-3/</link>
		<comments>http://blog.kubiczek.eu/2008/10/geturl-w-actionscript-3/#comments</comments>
		<pubDate>Fri, 24 Oct 2008 18:04:23 +0000</pubDate>
		<dc:creator>Adam Kubiczek</dc:creator>
				<category><![CDATA[Porady i solucje]]></category>
		<category><![CDATA[#Actionscript]]></category>

		<guid isPermaLink="false">http://kubiczek.net.pl/?p=99</guid>
		<description><![CDATA[Dobrze znanej z ActionScript2 metody getURL nie znajdziemy w wersji 3 języka. Zamiast niej możemy posłużyć się metodą flash.net.navigateToURL&#40;request:URLRequest, window:String&#41;:void]]></description>
			<content:encoded><![CDATA[<p>Dobrze znanej z ActionScript2 metody getURL nie znajdziemy w wersji 3 języka. Zamiast niej możemy posłużyć się metodą</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;">flash.<span style="color: #006600;">net</span>.<span style="color: #006600;">navigateToURL</span><span style="color: #66cc66;">&#40;</span>request:URLRequest, window:<span style="color: #0066CC;">String</span><span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://blog.kubiczek.eu/2008/10/geturl-w-actionscript-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Rzucanie cieni w Papervision3D</title>
		<link>http://blog.kubiczek.eu/2008/10/rzucanie-cienia-w-papervision3d/</link>
		<comments>http://blog.kubiczek.eu/2008/10/rzucanie-cienia-w-papervision3d/#comments</comments>
		<pubDate>Fri, 24 Oct 2008 17:54:25 +0000</pubDate>
		<dc:creator>Adam Kubiczek</dc:creator>
				<category><![CDATA[Porady i solucje]]></category>
		<category><![CDATA[#Actionscript]]></category>

		<guid isPermaLink="false">http://kubiczek.net.pl/?p=106</guid>
		<description><![CDATA[Andy Zupko, współautor Papervision3D, napisał klasę dzięki której dostajemy możliwość rzucania cieni przez dowolne obiekty na naszej scenie 3D. Muszę przyznać, że działa to znakomicie &#8211; oraz dużo szybciej od pierwszej wersji, którą zaprezentował w ubiegłym roku. Klasa ShadowCaster nie została na razie dodana do pakietu z Papervision3D, ale można pobrać jej źródło bezpośrednio ze [...]]]></description>
			<content:encoded><![CDATA[<p>Andy Zupko, współautor Papervision3D, napisał klasę dzięki której dostajemy możliwość rzucania cieni przez dowolne obiekty na naszej scenie 3D. Muszę przyznać, że działa to znakomicie &#8211; oraz dużo szybciej od pierwszej wersji, którą zaprezentował w ubiegłym roku. Klasa ShadowCaster nie została na razie dodana do pakietu z Papervision3D, ale można pobrać jej źródło bezpośrednio <a href="http://blog.zupko.info/?p=146">ze strony Andiego</a> &#8211; tam też znajdziecie demo i przykład wykorzystania.</p>
<p><img class="aligncenter" title="Cienie w Papervision3D" src="http://blog.zupko.info/wp-content/uploads/2008/07/shadowtop.png" alt="" width="438" height="204" /></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.kubiczek.eu/2008/10/rzucanie-cienia-w-papervision3d/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Wywoływanie metod pomiędzy plikami SWF</title>
		<link>http://blog.kubiczek.eu/2008/09/wywolywanie-metod-pomiedzy-plikami-swf/</link>
		<comments>http://blog.kubiczek.eu/2008/09/wywolywanie-metod-pomiedzy-plikami-swf/#comments</comments>
		<pubDate>Mon, 22 Sep 2008 09:23:11 +0000</pubDate>
		<dc:creator>Adam Kubiczek</dc:creator>
				<category><![CDATA[Porady i solucje]]></category>
		<category><![CDATA[#Actionscript]]></category>
		<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://kubiczek.net.pl/?p=100</guid>
		<description><![CDATA[Problem: Plik swf utworzony w actionscript2 będzie osadzony w innym pliku swf utworzonym w actionscript3. W jaki sposób z jednego pliku swf wywołać metodę w drugim? Rozwiązaniem jest użycie klasy LocalConnection. Oto przykładowy kod: embeded.swf (actionscript 2): on&#40;release&#41; &#123; var localConnection:LocalConnection = new LocalConnection&#40;&#41;; localConnection.send&#40;&#34;holderConnection&#34;, &#34;myMethod&#34;&#41;; &#125; holder.swf (actionscript 3): import flash.net.LocalConnection; &#160; public class [...]]]></description>
			<content:encoded><![CDATA[<p>Problem: Plik swf utworzony w actionscript2 będzie osadzony w innym pliku swf utworzonym w actionscript3. W jaki sposób z jednego pliku swf wywołać metodę w drugim?</p>
<p>Rozwiązaniem jest użycie klasy LocalConnection. Oto przykładowy kod:</p>
<p>embeded.swf (actionscript 2):</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;"><span style="color: #0066CC;">on</span><span style="color: #66cc66;">&#40;</span>release<span style="color: #66cc66;">&#41;</span> <span style="color: #66cc66;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">var</span> <span style="color: #0066CC;">localConnection</span>:<span style="color: #0066CC;">LocalConnection</span> = <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #0066CC;">LocalConnection</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
	<span style="color: #0066CC;">localConnection</span>.<span style="color: #0066CC;">send</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;holderConnection&quot;</span>, <span style="color: #ff0000;">&quot;myMethod&quot;</span><span style="color: #66cc66;">&#41;</span>;
<span style="color: #66cc66;">&#125;</span></pre></div></div>

<p>holder.swf (actionscript 3):</p>

<div class="wp_syntax"><div class="code"><pre class="actionscript" style="font-family:monospace;"><span style="color: #0066CC;">import</span> flash.<span style="color: #006600;">net</span>.<span style="color: #0066CC;">LocalConnection</span>;
&nbsp;
<span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">class</span> Holder
<span style="color: #66cc66;">&#123;</span>
    <span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> Holder<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>
    <span style="color: #66cc66;">&#123;</span>
        <span style="color: #000000; font-weight: bold;">var</span> <span style="color: #0066CC;">localConnection</span>:<span style="color: #0066CC;">LocalConnection</span> = <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #0066CC;">LocalConnection</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
	<span style="color: #0066CC;">localConnection</span>.<span style="color: #006600;">client</span> = <span style="color: #0066CC;">this</span>;
	<span style="color: #0066CC;">localConnection</span>.<span style="color: #0066CC;">connect</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">&quot;holderConnection&quot;</span><span style="color: #66cc66;">&#41;</span>;
    <span style="color: #66cc66;">&#125;</span>
&nbsp;
    <span style="color: #0066CC;">public</span> <span style="color: #000000; font-weight: bold;">function</span> myMethod<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>:<span style="color: #0066CC;">void</span>
    <span style="color: #66cc66;">&#123;</span>
        <span style="color: #0066CC;">trace</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'metoda myMethod została wywołana'</span><span style="color: #66cc66;">&#41;</span>;
    <span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span></pre></div></div>

<p>Należy zwrócić uwagę, aby metody które chcemy wywołać były zdefiniowane jako metody publiczne.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.kubiczek.eu/2008/09/wywolywanie-metod-pomiedzy-plikami-swf/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

