<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom"><title>Andy Li’s Blog - Flex</title><link href="https://blog.onthewings.net/" rel="alternate"></link><link href="http://feeds.feedburner.com/tag/flex/feed/atom.xml" rel="self"></link><id>https://blog.onthewings.net/</id><updated>2010-02-19T20:55:00+08:00</updated><entry><title>Colorblink - An AIR app that simulates how color blind people see Flash and images</title><link href="https://blog.onthewings.net/2010/02/19/colorblink-an-air-app-that-simulates-how-color-blind-people-see-flash-and-images/" rel="alternate"></link><published>2010-02-19T20:55:00+08:00</published><updated>2010-02-19T20:55:00+08:00</updated><author><name>Andy Li</name></author><id>tag:blog.onthewings.net,2010-02-19:/2010/02/19/colorblink-an-air-app-that-simulates-how-color-blind-people-see-flash-and-images/</id><summary type="html">&lt;p&gt;&lt;img alt="Select color blind type from the menu." src="/files/2010/colorblink-demo.png"/&gt;&lt;/p&gt;
&lt;p&gt;Accessibility is a an important part of both web and game design. And
for web and game design, one of the popular tool is Flash. That means
very often you need to ensure accessibility in Flash. However there are
still not many tools available even for simple things like color …&lt;/p&gt;</summary><content type="html">&lt;p&gt;&lt;img alt="Select color blind type from the menu." src="/files/2010/colorblink-demo.png"/&gt;&lt;/p&gt;
&lt;p&gt;Accessibility is a an important part of both web and game design. And
for web and game design, one of the popular tool is Flash. That means
very often you need to ensure accessibility in Flash. However there are
still not many tools available even for simple things like color blind
simulation… so I write my own:)&lt;/p&gt;
&lt;p&gt;&amp;gt;&amp;gt; &lt;a href="http://github.com/andyli/Colorblink/raw/master/Colorblink.air"&gt;download installer (.air)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;It’s a very simple &lt;span class="caps"&gt;AIR&lt;/span&gt; app. You open it, drop a swf file on its window,
select the color blind type and that’s it.&lt;/p&gt;
&lt;p&gt;The inner of Colorblink is using a Pixel Bender filter, applying to the
whole application. The algorithm is just a color transform matrix, found
in &lt;a href="http://homepage.mac.com/lpetrich/ColorBlindnessSim/ColorBlindnessSim.html"&gt;a Java Color-Blindness Simulators&lt;/a&gt;. That simulator have more
simulation config, which I used only the simplest one.&lt;/p&gt;
&lt;p&gt;This is also my first time using a git repo. So &lt;a href="http://github.com/andyli/Colorblink"&gt;go to have a look&lt;/a&gt;,
see if you can fork it for more features.&lt;/p&gt;
&lt;p&gt;&lt;del&gt;One thing is, there is
problem loading Flex applications into Colorblink… I don’t know how to
read the loaded app’s default width and height and then resize it… So,
if you want to test your Flex app, &lt;a href="http://github.com/andyli/Colorblink/tree/master/src/net/onthewings/filters/"&gt;get the filter&lt;/a&gt; and apply it to
your app manually (can’t be easier).&lt;/del&gt;&lt;br/&gt;
Now you can load Flex swf or even html file! But the app wouldn’t
resize automatically since the size cannot be determined. If Colorblink
does not work for you, you can still always &lt;a href="http://github.com/andyli/Colorblink/tree/master/src/net/onthewings/filters/"&gt;get the filter&lt;/a&gt; and apply
it to your app manually (can’t be easier).&lt;/p&gt;
&lt;p&gt;Oh, yes, there is a simulation of what a dog sees… So, design some
game for your dogs in your free time…&lt;/p&gt;</content><category term="Flash"></category><category term="Flex"></category><category term="Pixel Bender"></category><category term="web usability design and engineering"></category></entry><entry><title>Bicubic resampling by Pixel Bender</title><link href="https://blog.onthewings.net/2009/08/25/bicubic-resampling-by-pixel-bender/" rel="alternate"></link><published>2009-08-25T07:51:00+08:00</published><updated>2009-08-25T07:51:00+08:00</updated><author><name>Andy Li</name></author><id>tag:blog.onthewings.net,2009-08-25:/2009/08/25/bicubic-resampling-by-pixel-bender/</id><summary type="html">&lt;p&gt;There is &lt;a href="http://www.brooksandrus.com/blog/2009/03/11/bilinear-resampling-with-flash-player-and-pixel-bender/"&gt;bilinear resampling by Pixel Bender&lt;/a&gt; already, why not
bicubic too?&lt;/p&gt;
&lt;p&gt;With the very helpful &lt;a href="http://www.paulinternet.nl/?page=bicubic"&gt;Java implementation&lt;/a&gt;, I can get bicubic
resampling running in Pixel Bender in hours.&lt;/p&gt;
&lt;p&gt;Here is my result, along with the resampling results in PhotoShop as a comparison:&lt;/p&gt;
&lt;p&gt;Source image (4x4), scaled by your browser …&lt;/p&gt;</summary><content type="html">&lt;p&gt;There is &lt;a href="http://www.brooksandrus.com/blog/2009/03/11/bilinear-resampling-with-flash-player-and-pixel-bender/"&gt;bilinear resampling by Pixel Bender&lt;/a&gt; already, why not
bicubic too?&lt;/p&gt;
&lt;p&gt;With the very helpful &lt;a href="http://www.paulinternet.nl/?page=bicubic"&gt;Java implementation&lt;/a&gt;, I can get bicubic
resampling running in Pixel Bender in hours.&lt;/p&gt;
&lt;p&gt;Here is my result, along with the resampling results in PhotoShop as a comparison:&lt;/p&gt;
&lt;p&gt;Source image (4x4), scaled by your browser):&lt;/p&gt;
&lt;p&gt;&lt;img alt="Source image (4x4), scaled by your browser)" class="size-full wp-image-506 " height="200" scale="0" src="/files/2009/16color.png" title="16color image" width="200"/&gt;&lt;/p&gt;
&lt;p&gt;Source image enlarged in &lt;span class="caps"&gt;PS&lt;/span&gt; (nearest neighbor):&lt;/p&gt;
&lt;p&gt;&lt;img alt="Source image enlarged in PS (nearest neighbor)" class="size-full wp-image-507 " height="200" scale="0" src="/files/2009/16color_psNearest.png" title="16color_psNearest" width="200"/&gt;&lt;/p&gt;
&lt;p&gt;Bicubic resampling by Pixel Bender:&lt;/p&gt;
&lt;p&gt;&lt;img alt="Bicubic resampling by Pixel Bender" class="size-full wp-image-508 " height="200" scale="0" src="/files/2009/16color_pbBicubic.png" title="16color_pbBicubic" width="200"/&gt;&lt;/p&gt;
&lt;p&gt;There is some difference with PhotoShop’s versions (below), hope it’s
not my mistake…&lt;/p&gt;
&lt;p&gt;Bicubic resampling by PhotoShop:&lt;/p&gt;
&lt;p&gt;&lt;img alt="Bicubic resampling by PhotoShop." class="size-full wp-image-509 " height="200" scale="0" src="/files/2009/16color_psBicubic.png" title="16color_psBicubic" width="200"/&gt;&lt;/p&gt;
&lt;p&gt;Bicubic smoother by PhotoShop:&lt;/p&gt;
&lt;p&gt;&lt;img alt="Bicubic smoother in PhotoShop" class="size-full wp-image-510 " height="200" scale="0" src="/files/2009/16color_psBicubicSmoother.png" title="16color_psBicubicSmoother" width="200"/&gt;&lt;/p&gt;
&lt;p&gt;Bicubic sharper by PhotoShop:&lt;/p&gt;
&lt;p&gt;&lt;img alt="Bicubic sharper in PhotoShop" class="size-full wp-image-511 " height="200" scale="0" src="/files/2009/16color_psBicubicShaper.png" title="16color_psBicubicShaper" width="200"/&gt;&lt;/p&gt;
&lt;p&gt;My codes can be downloaded below:&lt;br/&gt;
&lt;a href="/files/2009/bicubicResampling.zip"&gt;Bicubic resampling sample program source (with &lt;span class="caps"&gt;PB&lt;/span&gt; source)&lt;/a&gt;&lt;/p&gt;
&lt;hr/&gt;
&lt;p&gt;Update:&lt;br/&gt;
Notified by author of the Java version, the Java code was wrong and has
been updated. Here below is my updated code:&lt;br/&gt;
&lt;a href="/files/2010/bicubicResampling.zip"&gt;Bicubic resampling sample program source (with &lt;span class="caps"&gt;PB&lt;/span&gt; source)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;updated output of &lt;span class="caps"&gt;PB&lt;/span&gt;:&lt;/p&gt;
&lt;p&gt;&lt;img alt="updated output of PB" src="/files/2009/pbBicubic.png"/&gt;&lt;/p&gt;
&lt;hr/&gt;
&lt;p&gt;Update (2010-11-17):&lt;br/&gt;
Once again notified by Paul, the author of the Java version, there is
something need to be updated. Here below is my updated code:&lt;br/&gt;
&lt;a href="/files/2009/bicubicResampling1.zip"&gt;Bicubic resampling sample program source (with &lt;span class="caps"&gt;PB&lt;/span&gt; source)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;updated output of &lt;span class="caps"&gt;PB&lt;/span&gt;:&lt;/p&gt;
&lt;p&gt;&lt;img alt="updated output of PB" src="/files/2009/pbBicubic1.png"/&gt;&lt;/p&gt;</content><category term="Flash"></category><category term="Flex"></category><category term="Pixel Bender"></category></entry><entry><title>Playing with chroma key and thresholding in Flash (with Pixel Bender)</title><link href="https://blog.onthewings.net/2009/08/18/playing-with-chroma-key-and-thresholding-in-flash-with-pixel-bender/" rel="alternate"></link><published>2009-08-18T06:22:00+08:00</published><updated>2009-08-18T06:22:00+08:00</updated><author><name>Andy Li</name></author><id>tag:blog.onthewings.net,2009-08-18:/2009/08/18/playing-with-chroma-key-and-thresholding-in-flash-with-pixel-bender/</id><summary type="html">&lt;p&gt;While &lt;a href="http://www.flickr.com/photos/andy-li/sets/72157621818199411/"&gt;traveling with my gf in Europe&lt;/a&gt;, I’m planning to develop a
better technique to use color marker in FLARtoolkit (which I’ve &lt;a href="https://blog.onthewings.net/2009/05/23/flartoolkit-trick-use-a-colored-marker/"&gt;tried
before&lt;/a&gt;).&lt;/p&gt;
&lt;iframe allowfullscreen="" frameborder="0" height="390" src="//www.youtube.com/embed/coDZ7VUogh4" width="640"&gt;&lt;/iframe&gt;
&lt;p&gt;For the first step of doing so is to find a algorithm of matching
colors. Using blend mode “difference” on the image is not …&lt;/p&gt;</summary><content type="html">&lt;p&gt;While &lt;a href="http://www.flickr.com/photos/andy-li/sets/72157621818199411/"&gt;traveling with my gf in Europe&lt;/a&gt;, I’m planning to develop a
better technique to use color marker in FLARtoolkit (which I’ve &lt;a href="https://blog.onthewings.net/2009/05/23/flartoolkit-trick-use-a-colored-marker/"&gt;tried
before&lt;/a&gt;).&lt;/p&gt;
&lt;iframe allowfullscreen="" frameborder="0" height="390" src="//www.youtube.com/embed/coDZ7VUogh4" width="640"&gt;&lt;/iframe&gt;
&lt;p&gt;For the first step of doing so is to find a algorithm of matching
colors. Using blend mode “difference” on the image is not flexible and
may not fit all situations. I decided to calculate the difference by
comparing hue, saturation and brightness of the colors and then
threshold the image.&lt;/p&gt;
&lt;p&gt;This is very similar to (if not exactly) doing &lt;a href="http://en.wikipedia.org/wiki/Chroma_key"&gt;chroma key&lt;/a&gt;. Maybe
there is some awesome beautiful chroma key algorithm but I can’t find a
fast and flexible enough to do so. If you know one, please tell me. :)&lt;/p&gt;
&lt;p&gt;One problem I faced is choosing between color space models. &lt;span class="caps"&gt;RGB&lt;/span&gt; surely
wouldn’t be the choice since it do not give hue value directly. There
are &lt;span class="caps"&gt;HSV&lt;/span&gt; and &lt;span class="caps"&gt;HSL&lt;/span&gt; I found to be quite suitable. The two models share the
same algorithm to calculate hue but have different ones for saturation
and brightness. After reading the &lt;a href="http://en.wikipedia.org/wiki/HSL_and_HSV"&gt;algorithms&lt;/a&gt;, my decision is… try
both. :P&lt;/p&gt;
&lt;p&gt;Another problem is how to preform thresholding. First method is after
calculating the pixel difference, add the difference in hue, saturation
and brightness altogether with weightings and do a one-time threshold to
the grayscale image. Second method is calculate the difference and give
threshold limits to the three channels (H,S,V or H,S,L), only the pixels
pass all the three thresholds will be white. First method should be more
easily to incorporate with other filters developed for &lt;span class="caps"&gt;AR&lt;/span&gt; (like the very
hot &lt;a href="http://blog.inspirit.ru/?p=322"&gt;adaptive thresholding&lt;/a&gt;), but the second method can be more
precise.  Finally I tried both too…&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: large;"&gt;&lt;strong&gt;&lt;a href="/files/2009/colorDifference.html"&gt;Here is the result&lt;/a&gt;&lt;/strong&gt;&lt;/span&gt;. While
I have set some default values to the filters, be sure to play around
with the values when you change the target color. There wouldn’t be a
set of values that fits all methods and situations. :)&lt;/p&gt;
&lt;p&gt;I’ll try integrate it with FLARtoolkit and release the source when it is
ready, be sure to check back soon. :)&lt;/p&gt;
&lt;p&gt;Update:&lt;br/&gt;
&lt;a href="https://blog.onthewings.net/2009/12/10/chroma-key-and-thresholding-in-flash-pixel-bender-revised/"&gt;Source and new demo is here!&lt;/a&gt;&lt;/p&gt;</content><category term="experiment"></category><category term="Flash"></category><category term="Flex"></category><category term="Pixel Bender"></category></entry><entry><title>Simulating atomic model of metal by Box2DFlash</title><link href="https://blog.onthewings.net/2009/07/14/simulating-atomic-model-of-metal-by-box2dflash/" rel="alternate"></link><published>2009-07-14T01:49:00+08:00</published><updated>2009-07-14T01:49:00+08:00</updated><author><name>Andy Li</name></author><id>tag:blog.onthewings.net,2009-07-14:/2009/07/14/simulating-atomic-model-of-metal-by-box2dflash/</id><summary type="html">&lt;iframe allowfullscreen="" frameborder="0" height="480" mozallowfullscreen="" msallowfullscreen="" oallowfullscreen="" src="https://www.flickr.com/photos/andy-li/3716779279/in/set-72157621394341446/player/" webkitallowfullscreen="" width="640"&gt;&lt;/iframe&gt;
&lt;p&gt;Impressed by the video &lt;a href="http://createdigitalmotion.com/2009/07/06/a-different-view-of-particles-real-world-pinscreens/"&gt;here&lt;/a&gt;, I tried to simulate the atomic model of
metal in Flash using Box2DFlash.&lt;/p&gt;
&lt;p&gt;What is done in the program is just put a lot of spheres in the area
randomly, and then let the physics engine to solve all the collisions.
When all the atoms …&lt;/p&gt;</summary><content type="html">&lt;iframe allowfullscreen="" frameborder="0" height="480" mozallowfullscreen="" msallowfullscreen="" oallowfullscreen="" src="https://www.flickr.com/photos/andy-li/3716779279/in/set-72157621394341446/player/" webkitallowfullscreen="" width="640"&gt;&lt;/iframe&gt;
&lt;p&gt;Impressed by the video &lt;a href="http://createdigitalmotion.com/2009/07/06/a-different-view-of-particles-real-world-pinscreens/"&gt;here&lt;/a&gt;, I tried to simulate the atomic model of
metal in Flash using Box2DFlash.&lt;/p&gt;
&lt;p&gt;What is done in the program is just put a lot of spheres in the area
randomly, and then let the physics engine to solve all the collisions.
When all the atoms stop moving, a single still of the metal structure
will be formed.&lt;/p&gt;
&lt;p&gt;The atoms are only drawn on the screen when it is sleeping (i.e.. no
movement). It can save some time from not rendering them in each frame.&lt;/p&gt;
&lt;p&gt;&lt;span style="color: #ff0000;"&gt;caution:&lt;/span&gt; The browser will freeze
for a few seconds after “start” is pressed. And it takes several minutes
to an hour to finish (when sleep count == atom count).  &lt;/p&gt;
&lt;p&gt;&lt;object data="/files/2009/atomicModelSim.swf" height="480" id="swf35721" style="visibility: visible;" type="application/x-shockwave-flash" width="640"&gt;&lt;param name="wmode" value="opaque"/&gt;&lt;param name="menu" value="true"/&gt;&lt;param name="quality" value="high"/&gt;&lt;param name="bgcolor" value="#FFFFFF"/&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;param name="allowFullScreen" value="true"/&gt;&lt;/object&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="/files/2009/atomicModelSim.zip"&gt;source&lt;/a&gt;&lt;/p&gt;</content><category term="experiment"></category><category term="Flash"></category><category term="Flex"></category></entry><entry><title>PV3D + Async-threading = Async Render Engine</title><link href="https://blog.onthewings.net/2009/06/07/pv3d-async-threading-asyncrenderengine/" rel="alternate"></link><published>2009-06-07T03:28:00+08:00</published><updated>2009-06-07T03:28:00+08:00</updated><author><name>Andy Li</name></author><id>tag:blog.onthewings.net,2009-06-07:/2009/06/07/pv3d-async-threading-asyncrenderengine/</id><summary type="html">&lt;p&gt;Recently I need to write a 3D tool to help making a installation
artwork. I know I should use Maya, Processing or anything like that, but
in order to get the least risk, I used my most experienced language,
&lt;span class="caps"&gt;AS3&lt;/span&gt;.&lt;/p&gt;
&lt;p&gt;Since I need to render A &lt;span class="caps"&gt;LOT&lt;/span&gt; of stuff (\~400 …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Recently I need to write a 3D tool to help making a installation
artwork. I know I should use Maya, Processing or anything like that, but
in order to get the least risk, I used my most experienced language,
&lt;span class="caps"&gt;AS3&lt;/span&gt;.&lt;/p&gt;
&lt;p&gt;Since I need to render A &lt;span class="caps"&gt;LOT&lt;/span&gt; of stuff (\~400,000 objects), instantly I
faced the performance issue. As you can imagine, even if I could
generate all the objects in 15 seconds, the rendering process must
excess the Flash Player’s  execution time limit.&lt;/p&gt;
&lt;p&gt;So I try to make my own async render engine with the help of
&lt;a href="http://code.google.com/p/async-threading/"&gt;async-threading&lt;/a&gt;. I extended BasicRenderEngine to
AsyncBasicRenderEngine. The class even has a showBusyCursor property
that let you optionally show the busy cursor on rendering.&lt;/p&gt;
&lt;p&gt;But note that this is only a proof-of-concept and actually has little
help of preventing freeze-screen. It is because I only distribute the
individual 3D object’s rendering to frames but leaving the sorting,
filtering, post-process code unchanged. Also, the RenderStatistics
returned by renderScene/renderLayers will contain only wrong data until
the RENDER_DONE event is dispatched.&lt;/p&gt;
&lt;p&gt;One last thing, Flash’s drawing algorithm seems affecting the async
rendering performance too. So I do not add the viewport to stage.
Instead, once RENDER_DONE, I draw the viewport on a Bitmap on stage.&lt;/p&gt;
&lt;p&gt;&lt;object data="/files/2009/asyncrendererdemo.swf" height="620" id="swf4c3e1" style="visibility: visible;" type="application/x-shockwave-flash" width="820"&gt;&lt;param name="wmode" value="opaque"/&gt;&lt;param name="menu" value="true"/&gt;&lt;param name="quality" value="high"/&gt;&lt;param name="bgcolor" value="#FFFFFF"/&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;param name="allowFullScreen" value="true"/&gt;&lt;/object&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="/files/2009/asyncrendererdemo.zip"&gt;source&lt;/a&gt;&lt;/p&gt;</content><category term="experiment"></category><category term="Flash"></category><category term="Flex"></category></entry><entry><title>Vector Sound Wave Morphing</title><link href="https://blog.onthewings.net/2009/05/20/vector-sound-wave-morphing/" rel="alternate"></link><published>2009-05-20T06:53:00+08:00</published><updated>2009-05-20T06:53:00+08:00</updated><author><name>Andy Li</name></author><id>tag:blog.onthewings.net,2009-05-20:/2009/05/20/vector-sound-wave-morphing/</id><summary type="html">&lt;p&gt;This my my final project for the course “Interactivity I”. For this
final project, my aim is to explore the vector nature of sound wave
while making a tool to let people create their own waveform which can
then be saved for other use.&lt;/p&gt;
&lt;p&gt;The waveform in the program consists …&lt;/p&gt;</summary><content type="html">&lt;p&gt;This my my final project for the course “Interactivity I”. For this
final project, my aim is to explore the vector nature of sound wave
while making a tool to let people create their own waveform which can
then be saved for other use.&lt;/p&gt;
&lt;p&gt;The waveform in the program consists of 10 control points. The first
point and the last point are fixed at zero so that the wave can be
looped smoothly to form a sound wave. The controls points can be
adjusted by dragging or by using keyboard. The points are assigned with
keys labelled near them, which are number keys (+shift to move points up
instead of down). I recommend using the keyboard as you may adjust
multiple points at the same time (which feels like using multitouch
surface 8-) ).&lt;/p&gt;
&lt;p&gt;&lt;a href="http://degrafa.org/"&gt;Degrafa&lt;/a&gt; is used to construct the wave form. I choose to use cubic
bezier curve as it is easier for me to implement the algorithm (with the
still-in-beta &lt;a href="http://algorithmist.wordpress.com/2009/01/19/degrafa-cubic-bezier-y-at-x/"&gt;AdvancedCubicBezier&lt;/a&gt; which available via &lt;span class="caps"&gt;SVN&lt;/span&gt;).&lt;/p&gt;
&lt;p&gt;The 3D cylinder is made by Flash Player 10’s 3D &lt;span class="caps"&gt;API&lt;/span&gt;. It looks quite nice
as similar to landscapes.&lt;/p&gt;
&lt;p&gt;Sound is synthesized dynamically in real-time (with some delay… okay?
;-) ). If you hear some “clicks” or “pops”, try to export the sound
first by clicking on the export button at the bottom-right corner (it
will be in wav format, encoded by the &lt;a href="http://code.google.com/p/popforge/source/browse/trunk/flash/PopforgeLibrary/src/de/popforge/format/wav/WavEncoder.as"&gt;WavEncoder from popforge&lt;/a&gt;) .&lt;/p&gt;
&lt;p&gt;If you hear nothing, you may try to increase the buffer size or use the
export function.&lt;/p&gt;
&lt;p&gt;&lt;object data="/files/2009/vectorsoundwave.swf" height="450" id="swf86781" style="visibility: visible;" type="application/x-shockwave-flash" width="600"&gt;&lt;param name="wmode" value="opaque"/&gt;&lt;param name="menu" value="true"/&gt;&lt;param name="quality" value="high"/&gt;&lt;param name="bgcolor" value="#FFFFFF"/&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;param name="allowFullScreen" value="true"/&gt;&lt;/object&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="/files/2009/vectorsoundwave.zip"&gt;source&lt;/a&gt;&lt;/p&gt;</content><category term="3D"></category><category term="CityU"></category><category term="experiment"></category><category term="Flash"></category><category term="Flex"></category></entry><entry><title>Data structure assignment - Coin Collecting Game</title><link href="https://blog.onthewings.net/2008/11/03/data-structure-assignment-coin-collecting-game/" rel="alternate"></link><published>2008-11-03T04:56:00+08:00</published><updated>2008-11-03T04:56:00+08:00</updated><author><name>Andy Li</name></author><id>tag:blog.onthewings.net,2008-11-03:/2008/11/03/data-structure-assignment-coin-collecting-game/</id><summary type="html">&lt;p&gt;It is just a simple game (If it is really a game), but I was having fun
with Flex and PaperVision3D.&lt;/p&gt;
&lt;p&gt;&lt;object data="/files/2008/coincollectinggame.swf" height="500" id="swf38911" style="visibility: visible;" type="application/x-shockwave-flash" width="480"&gt;&lt;param name="wmode" value="opaque"/&gt;&lt;param name="menu" value="true"/&gt;&lt;param name="quality" value="high"/&gt;&lt;param name="bgcolor" value="#FFFFFF"/&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;param name="allowFullScreen" value="true"/&gt;&lt;/object&gt;&lt;/p&gt;</summary><content type="html">&lt;p&gt;It is just a simple game (If it is really a game), but I was having fun
with Flex and PaperVision3D.&lt;/p&gt;
&lt;p&gt;&lt;object data="/files/2008/coincollectinggame.swf" height="500" id="swf38911" style="visibility: visible;" type="application/x-shockwave-flash" width="480"&gt;&lt;param name="wmode" value="opaque"/&gt;&lt;param name="menu" value="true"/&gt;&lt;param name="quality" value="high"/&gt;&lt;param name="bgcolor" value="#FFFFFF"/&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;param name="allowFullScreen" value="true"/&gt;&lt;/object&gt;&lt;/p&gt;</content><category term="3D"></category><category term="Flex"></category></entry></feed>