<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-481882308993397518</id><updated>2011-11-17T17:34:00.538-08:00</updated><category term='PHP'/><category term='flash'/><category term='internel'/><category term='mysql'/><category term='air'/><category term='as3'/><category term='tutorial'/><category term='file upload'/><category term='map'/><category term='asp.net 2.0'/><category term='api'/><category term='flash，as3，programming，preloader'/><category term='file uploader'/><category term='flex'/><category term='google'/><title type='text'>Free Mind Teamwork</title><subtitle type='html'>Free Mind Teamwork is a freelancer team in programming. Major in flash/flex/air actionscript, PHP&amp;amp;&amp;amp;MYSQL so far. ^_^</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://freelancerworker.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/481882308993397518/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://freelancerworker.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>You are welcome!</name><uri>http://www.blogger.com/profile/03813861502555536098</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>9</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-481882308993397518.post-3982919439070126859</id><published>2011-06-15T08:47:00.000-07:00</published><updated>2011-06-15T08:52:49.345-07:00</updated><title type='text'></title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-10KcoTp_KXw/TfjUUDFDdTI/AAAAAAAAABQ/DrnGDN2oM24/s1600/%25E5%259B%25BE%25E7%2589%2587%2B020.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://2.bp.blogspot.com/-10KcoTp_KXw/TfjUUDFDdTI/AAAAAAAAABQ/DrnGDN2oM24/s320/%25E5%259B%25BE%25E7%2589%2587%2B020.jpg" alt="" id="BLOGGER_PHOTO_ID_5618473976033670450" border="0" /&gt;&lt;/a&gt;Thank you for your coming. I am really busy recently, and this blog has been not updated for a really long time. Because it's impossible to this website on the internet in today's C...&lt;br /&gt;This maybe the last post for this blog........&lt;br /&gt;I wanna say, good luck.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/481882308993397518-3982919439070126859?l=freelancerworker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://freelancerworker.blogspot.com/feeds/3982919439070126859/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://freelancerworker.blogspot.com/2011/06/thank-you-for-your-coming.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/481882308993397518/posts/default/3982919439070126859'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/481882308993397518/posts/default/3982919439070126859'/><link rel='alternate' type='text/html' href='http://freelancerworker.blogspot.com/2011/06/thank-you-for-your-coming.html' title=''/><author><name>You are welcome!</name><uri>http://www.blogger.com/profile/03813861502555536098</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-10KcoTp_KXw/TfjUUDFDdTI/AAAAAAAAABQ/DrnGDN2oM24/s72-c/%25E5%259B%25BE%25E7%2589%2587%2B020.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-481882308993397518.post-1236622898283067879</id><published>2010-05-23T04:39:00.001-07:00</published><updated>2010-05-23T04:39:33.223-07:00</updated><title type='text'>Web Game Programming In Flex/Flash</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: Verdana, Arial, Helvetica, 宋体, sans-serif; line-height: 22px; font-size: 14px; "&gt;&lt;p style="line-height: 25px; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; "&gt; &lt;span style="line-height: 28px; font-size: medium; "&gt;&lt;font face="&amp;#39;Courier New&amp;#39;" style="line-height: 28px; "&gt;Before this project, I have no idea about how to make Flex Web Games. Once I thought that Flex is aim to Web UI design and Flash is aim to Web Interactive design, so I didn&amp;#39;t care about how to make web games with Flex but only with Flash.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="line-height: 25px; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; "&gt;&lt;span style="line-height: 28px; font-size: medium; "&gt;&lt;font face="&amp;#39;Courier New&amp;#39;" style="line-height: 28px; "&gt;&lt;br style="line-height: 28px; "&gt; &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="line-height: 25px; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; "&gt;&lt;span style="line-height: 28px; font-size: medium; "&gt;&lt;font face="&amp;#39;Courier New&amp;#39;" style="line-height: 28px; "&gt;Now I get a project to convert a flash as3 intro to be running in any kind of flex web games. It make me feel compicated, and I have to find out how to make web game in Flex? &lt;/font&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="line-height: 25px; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; "&gt;&lt;span style="line-height: 28px; font-size: medium; "&gt;&lt;font face="&amp;#39;Courier New&amp;#39;" style="line-height: 28px; "&gt;&lt;br style="line-height: 28px; "&gt; &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="line-height: 25px; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; "&gt;&lt;font face="&amp;#39;Courier New&amp;#39;" style="line-height: 25px; "&gt;&lt;b style="line-height: 25px; font-weight: bold; "&gt;&lt;span style="line-height: 32px; font-size: large; "&gt;Inside A Real Flex Game&lt;/span&gt;&lt;/b&gt;&lt;/font&gt;&lt;/p&gt; &lt;p style="line-height: 25px; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; "&gt;&lt;span style="line-height: 28px; font-size: medium; "&gt;&lt;font face="&amp;#39;Courier New&amp;#39;" style="line-height: 28px; "&gt;&lt;br style="line-height: 28px; "&gt; &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="line-height: 25px; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; "&gt;&lt;span style="line-height: 28px; font-size: medium; "&gt;&lt;font face="&amp;#39;Courier New&amp;#39;" style="line-height: 28px; "&gt;2010-04-29 Actually this Flex game is developed by FlashDeveloper and compiled by Flex Builder 3 compiler. I have tried it and it can be compiled successfully. And this game use a famous 2D game engine flxiel to do its works. It&amp;#39;s good and it&amp;#39;s first that I have read a game written by a 2D game engine. Obviously I am shortage of web game programming.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="line-height: 25px; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; "&gt;&lt;span style="line-height: 28px; font-size: medium; "&gt;&lt;font face="&amp;#39;Courier New&amp;#39;" style="line-height: 28px; "&gt;&lt;br style="line-height: 28px; "&gt; &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="line-height: 25px; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; "&gt;&lt;span style="line-height: 28px; font-size: medium; "&gt;&lt;font face="&amp;#39;Courier New&amp;#39;" style="line-height: 28px; "&gt;In this project, I have learned lots of new stuffs. Thanks for the project manager &amp;quot;Zhibeiyou&amp;quot;. And FlashDeveloper is really a good tool. It can be easily to used to make any kind of application including HaXe and AS2/AS3.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="line-height: 25px; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; "&gt;&lt;span style="line-height: 28px; font-size: medium; "&gt;&lt;font face="&amp;#39;Courier New&amp;#39;" style="line-height: 28px; "&gt;&lt;br style="line-height: 28px; "&gt; &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="line-height: 25px; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; "&gt;&lt;span style="line-height: 28px; font-size: medium; "&gt;&lt;font face="&amp;#39;Courier New&amp;#39;" style="line-height: 28px; "&gt;The problem in this game is that the intro doesn&amp;#39;t work okay, and I can&amp;#39;t test it myself because the internet is still blocked here. It sucks!!!&lt;/font&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="line-height: 25px; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; "&gt;&lt;span style="line-height: 28px; font-size: medium; "&gt;&lt;font face="&amp;#39;Courier New&amp;#39;" style="line-height: 28px; "&gt;&lt;br style="line-height: 28px; "&gt; &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="line-height: 25px; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; "&gt;&lt;span style="line-height: 28px; font-size: medium; "&gt;&lt;font face="&amp;#39;Courier New&amp;#39;" style="line-height: 28px; "&gt;If I didn&amp;#39;t make a mistake, the intro in this game is running okay itself. And I can hardly know that I need to change what? I don&amp;#39;t know. It&amp;#39;s all right?!.......&lt;/font&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="line-height: 25px; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; "&gt;&lt;span style="line-height: 28px; font-size: medium; "&gt;&lt;font face="&amp;#39;Courier New&amp;#39;" style="line-height: 28px; "&gt;&lt;br style="line-height: 28px; "&gt; &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="line-height: 25px; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; "&gt;&lt;span style="line-height: 28px; font-size: medium; "&gt;&lt;font face="&amp;#39;Courier New&amp;#39;" style="line-height: 28px; "&gt;以下文章来自&lt;/font&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="line-height: 25px; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; "&gt;&lt;span style="line-height: 28px; font-size: medium; "&gt;&lt;font face="&amp;#39;Courier New&amp;#39;" style="line-height: 28px; "&gt;&lt;a href="http://www.sogou.com/websnapshot?url=http%3A%2F%2Fforum.j2eemx.com%2Fshowthread.php%3Fs%3Da76510ed878e80654f82e35957e95332%26mode%3Dhybrid%26t%3D930&amp;amp;did=595ec75f50855260-4d38f38e0c942bc0&amp;amp;encodedQuery=%5Bframe+flex&amp;amp;query=%5Bframe+flex&amp;amp;&amp;amp;p=40040100&amp;amp;dp=1&amp;amp;w=01020400"&gt;http://www.sogou.com/websnapshot?url=http%3A%2F%2Fforum.j2eemx.com%2Fshowthread.php%3Fs%3Da76510ed878e80654f82e35957e95332%26mode%3Dhybrid%26t%3D930&amp;amp;did=595ec75f50855260-4d38f38e0c942bc0&amp;amp;encodedQuery=%5Bframe+flex&amp;amp;query=%5Bframe+flex&amp;amp;&amp;amp;p=40040100&amp;amp;dp=1&amp;amp;w=01020400&lt;/a&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="line-height: 25px; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; "&gt;&lt;span style="line-height: 28px; font-size: medium; "&gt;&lt;font face="&amp;#39;Courier New&amp;#39;" style="line-height: 28px; "&gt;&lt;br style="line-height: 28px; "&gt; &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="line-height: 25px; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; "&gt;&lt;span style="line-height: 28px; font-size: medium; "&gt;&lt;font face="&amp;#39;Courier New&amp;#39;" style="line-height: 28px; "&gt;&lt;font color="#0000FF" style="line-height: 28px; "&gt;也解释了一个我一直困惑的问题，就是在Flex中的时间轴的问题，如果这一点可以解决，写Flex版的游戏的问题就迎刃而解，而且，我后面的猜想应该是不准确的，一般的Flex游戏的写法应该是按照这个项目来的传统的写法，而不是我想的借助于Flex框架建立的mxml项目，是一个不使用Flex框架的Actionscript项目，这一点很重要，也就不存在两种框架的兼容的问题。&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="line-height: 25px; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; "&gt;&lt;span style="line-height: 28px; font-size: medium; "&gt;&lt;font face="&amp;#39;Courier New&amp;#39;" style="line-height: 28px; "&gt;&lt;br style="line-height: 28px; "&gt; &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="line-height: 25px; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; "&gt;&lt;span style="line-height: 28px; font-size: medium; "&gt;&lt;font face="&amp;#39;Courier New&amp;#39;" style="line-height: 28px; "&gt;&lt;span style="line-height: normal; font-family: Simsun; -webkit-border-horizontal-spacing: 1px; -webkit-border-vertical-spacing: 1px; "&gt;在介紹這個 Tag 之前，先說說 Flash SWF 檔案 Streaming 與 Preloading&lt;br style="line-height: 28px; "&gt; 很早之前 Flash 為了要做到一邊下載一邊撥放的功能&lt;br style="line-height: 28px; "&gt;把資料分別散佈到主時間軸的影格內&lt;br style="line-height: 28px; "&gt;只要該影格所需的資料下載完畢，該影格便可進行撥放&lt;br style="line-height: 28px; "&gt;我記得以前是號稱 SWF Streaming，不過現在與 RTMP Streaming 相比&lt;br style="line-height: 28px; "&gt; 恐怕只能稱作 SWF 漸進式下載 (Progressive Download) 而已了&lt;br style="line-height: 28px; "&gt;最有代表性的應該就是 Flash Test Movie 時候，上面哪個長條圖了&lt;br style="line-height: 28px; "&gt;&lt;a href="http://bp2.blogger.com/_JHhe1vma7nY/Rl05Z170WBI/AAAAAAAAACA/veJm6nSORws/s1600-h/0.gif" target="_blank" style="line-height: 21px; color: rgb(201, 14, 0); font: normal normal normal 12px/normal Verdana, Arial, Helvetica, 宋体, sans-serif; text-decoration: underline; "&gt;&lt;/a&gt;&lt;a href="http://bp2.blogger.com/_JHhe1vma7nY/Rl05Z170WBI/AAAAAAAAACA/veJm6nSORws/s320/0.gif" rel="gallery.posts" style="line-height: 21px; color: rgb(201, 14, 0); font: normal normal normal 12px/normal Verdana, Arial, Helvetica, 宋体, sans-serif; text-decoration: underline; "&gt;&lt;/a&gt; 結果漸進式下載常常會發生停頓的現象&lt;br style="line-height: 28px; "&gt; 要另外寫 Preloading 程式...&lt;br style="line-height: 28px; "&gt;結果大多數情況下又回到了，全部下載完才能撥放的情況~~&lt;br style="line-height: 28px; "&gt;只是可以看到下載進度而已....&lt;br style="line-height: 28px; "&gt;要 Preloading 程式能夠正常執行&lt;br style="line-height: 28px; "&gt;便需要能夠讓 Preloading 程式在主時間軸影格 1 輸出&lt;br style="line-height: 28px; "&gt; 其它的內容放在後面的影格&lt;br style="line-height: 28px; "&gt;讓 Preloading 程式儘量小可以快速被下載完畢&lt;br style="line-height: 28px; "&gt;好執行它的工作&lt;br style="line-height: 28px; "&gt;在 Flash 開發工具內有好用的時間軸面板&lt;br style="line-height: 28px; "&gt;很容易把 Preloading 程式與其它內容用影格分開來&lt;br style="line-height: 28px; "&gt; 但是在 &lt;a style="line-height: 21px; color: rgb(201, 14, 0); font: normal normal normal 12px/normal Verdana, Arial, Helvetica, 宋体, sans-serif; text-decoration: underline; "&gt;&lt;/a&gt;&lt;b style="line-height: 28px; font-weight: bold; color: rgb(148, 31, 32); background-color: rgb(74, 226, 247); "&gt;Flex&lt;/b&gt; Builder 裡面並沒有時間軸面板啊&lt;br style="line-height: 28px; "&gt; 連怎樣作出多影格的 SWF 都不知道&lt;br style="line-height: 28px; "&gt;那要怎樣管理 Preloading 呢?&lt;br style="line-height: 28px; "&gt;答案就是標題 &lt;a style="line-height: 21px; color: rgb(201, 14, 0); font: normal normal normal 12px/normal Verdana, Arial, Helvetica, 宋体, sans-serif; text-decoration: underline; "&gt;&lt;/a&gt;&lt;b style="line-height: 28px; font-weight: bold; color: rgb(148, 31, 32); background-color: rgb(74, 226, 247); "&gt;Flex&lt;/b&gt; Metadata Tag - Frame FactoryClass&lt;br style="line-height: 28px; "&gt; 先看一個簡單的使用例子：&lt;/span&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;font face="&amp;#39;Courier New&amp;#39;" style="line-height: 25px; "&gt;&lt;blockquote style="line-height: 25px; "&gt;Main.as package { import flash.display.*; &lt;b style="line-height: 25px; font-weight: bold; color: rgb(0, 0, 0); background-color: rgb(255, 255, 0); "&gt;[Frame&lt;/b&gt;(factoryClass=&amp;quot;Factory&amp;quot;)] public class Main extends MovieClip { public function Main():*{ } } } Factory.as&lt;br style="line-height: 25px; "&gt; package { import flash.display.*; public class Factory1 extends MovieClip { public function Factory():*{ } } }&lt;/blockquote&gt;Frame FactoryClass 標籤只對 Application Class (Document Class) 有作用&lt;br style="line-height: 25px; "&gt;功能是用指定的 Class 取代作為 Application Class&lt;br style="line-height: 25px; "&gt; 並且在指定的 Class 增加影格數量&lt;br style="line-height: 25px; "&gt;從上面的例子來看 Factory Class 便成為新的 Application Class&lt;br style="line-height: 25px; "&gt;且具有兩個影格，影格標籤分別為 [&amp;quot;Factory&amp;quot;, &amp;quot;Main&amp;quot;]&lt;br style="line-height: 25px; "&gt;同時也兼具 Preloading、初始化 Main Insatnce 的任務&lt;br style="line-height: 25px; "&gt; 接下來，利用 FactoryClass 作一個完整的 Preloading&lt;br style="line-height: 25px; "&gt;※FactoryClass 使用要點：&lt;br style="line-height: 25px; "&gt;1. 不可以在 Factory Class 內明確引用其它非 Preloading 期間需要用到的 Class，&lt;br style="line-height: 25px; "&gt;否則會造成引用的 Class 在影格 1 輸出，失去 Preloading 作用；&lt;br style="line-height: 25px; "&gt; 應該待讀取完畢後，使用反射 (Reflection) flash.utils.getDefinitionByName 方式取得 Class。&lt;br style="line-height: 25px; "&gt;2. SWF 載入完畢後，仍要讓撥放頭 (playhead) 前進，Main Class 才可以被使用。&lt;/font&gt;&lt;p style="line-height: 25px; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; "&gt; &lt;/p&gt;&lt;p style="line-height: 25px; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; "&gt;&lt;font face="&amp;#39;Courier New&amp;#39;" style="line-height: 25px; "&gt;&lt;span style="line-height: 25px; font-size: medium; "&gt;&lt;br style="line-height: 28px; "&gt; &lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style="line-height: 25px; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; "&gt;&lt;font face="&amp;#39;Courier New&amp;#39;" style="line-height: 25px; "&gt;&lt;span style="line-height: 25px; font-size: medium; "&gt;In this project, it use [Frame] to load a preloader factory class, and then loading a embedded swf to display the loading progress and animations. It works okay in this project.&lt;/span&gt;&lt;/font&gt;&lt;/p&gt; &lt;p style="line-height: 25px; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; "&gt;&lt;font face="&amp;#39;Courier New&amp;#39;" style="line-height: 25px; "&gt;&lt;span style="line-height: 25px; font-size: medium; "&gt;&lt;br style="line-height: 28px; "&gt; &lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style="line-height: 25px; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; "&gt;&lt;font face="&amp;#39;Courier New&amp;#39;" style="line-height: 25px; "&gt;&lt;span style="line-height: 25px; font-size: medium; "&gt;As the type of the embedded swf is a MovieClip, it will be place in the first frame of the game. And it will display the loading progress by using &amp;quot;framesLoaded == totalFrames&amp;quot; condition. In a flash game, it will work okay because framesLoaded and totalFrames are properties of whole flash document, and it will present the timeline of the flash document.&lt;/span&gt;&lt;/font&gt;&lt;/p&gt; &lt;p style="line-height: 25px; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; "&gt;&lt;font face="&amp;#39;Courier New&amp;#39;" style="line-height: 25px; "&gt;&lt;span style="line-height: 25px; font-size: medium; "&gt;&lt;br style="line-height: 28px; "&gt; &lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style="line-height: 25px; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; "&gt;&lt;font face="&amp;#39;Courier New&amp;#39;" style="line-height: 25px; "&gt;&lt;span style="line-height: 25px; font-size: medium; "&gt;Now I am wondering if it&amp;#39;s loaded as a embedded MovieClip, and add to the preloader by using addChild function. Did &amp;quot;framesLoaded and totalFrames&amp;quot; still work okay? I guess that it will be an independent MovieClip with its own timeline. So the code inside this MovieClip will not work correctly to display the progress of the whole game.&lt;/span&gt;&lt;/font&gt;&lt;/p&gt; &lt;p style="line-height: 25px; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; "&gt;&lt;font face="&amp;#39;Courier New&amp;#39;" style="line-height: 25px; "&gt;&lt;span style="line-height: 25px; font-size: medium; "&gt;&lt;br style="line-height: 28px; "&gt; &lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style="line-height: 25px; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; "&gt;&lt;font face="&amp;#39;Courier New&amp;#39;" style="line-height: 25px; "&gt;&lt;span style="line-height: 25px; font-size: medium; "&gt;So the wrapper factory class need to access it from the outside. It means we need to change the internal logic of that intro kind of (not tested so far).&lt;/span&gt;&lt;/font&gt;&lt;/p&gt; &lt;p style="line-height: 25px; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; "&gt;&lt;font face="&amp;#39;Courier New&amp;#39;" style="line-height: 25px; "&gt;&lt;span style="line-height: 25px; font-size: medium; "&gt;&lt;br style="line-height: 28px; "&gt; &lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style="line-height: 25px; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; "&gt;&lt;font face="&amp;#39;Courier New&amp;#39;" style="line-height: 25px; "&gt;&lt;span style="line-height: 25px; font-size: medium; "&gt;1 Write a document class of that intro and move all stuffs ouside first especially the part of displaying &amp;quot;xxx%&amp;quot; and &amp;quot;loading complete event&amp;quot;.&lt;/span&gt;&lt;/font&gt;&lt;/p&gt; &lt;p style="line-height: 25px; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; "&gt;&lt;font face="&amp;#39;Courier New&amp;#39;" style="line-height: 25px; "&gt;&lt;span style="line-height: 25px; font-size: medium; "&gt;2 Add some logics in the outside factory class, and first to load the embedded intro then to count the loading bytes.&lt;/span&gt;&lt;/font&gt;&lt;/p&gt; &lt;p style="line-height: 25px; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; "&gt;&lt;font face="&amp;#39;Courier New&amp;#39;" style="line-height: 25px; "&gt;&lt;span style="line-height: 25px; font-size: medium; "&gt;&lt;br style="line-height: 28px; "&gt; &lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style="line-height: 25px; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; "&gt;&lt;font face="&amp;#39;Courier New&amp;#39;" style="line-height: 25px; "&gt;&lt;b style="line-height: 25px; font-weight: bold; "&gt;&lt;span style="line-height: 32px; font-size: large; "&gt;Use Flash Component In Flex&lt;/span&gt;&lt;/b&gt;&lt;/font&gt;&lt;/p&gt; &lt;p style="line-height: 25px; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; "&gt;&lt;span style="line-height: 25px; font-family: &amp;#39;Courier New&amp;#39;; font-size: medium; "&gt;We can use flash component in Flex, but it is seldom used in a web  game. In adobe official article of flex component kit, you will see how to use that tool to do so. But it&amp;#39;s not enough in a real project sometimes. &lt;/span&gt;&lt;/p&gt; &lt;p style="line-height: 25px; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; "&gt;&lt;font face="&amp;#39;Courier New&amp;#39;" style="line-height: 25px; "&gt;&lt;span style="line-height: 25px; font-size: medium; "&gt;&lt;br style="line-height: 28px; "&gt; &lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style="line-height: 25px; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; "&gt;&lt;font face="&amp;#39;Courier New&amp;#39;" style="line-height: 25px; "&gt;&lt;span style="line-height: 25px; "&gt;&lt;b style="line-height: 25px; font-weight: bold; "&gt;&lt;span style="line-height: 32px; font-size: large; "&gt;Change Default Flex Download Progress Bar&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt; &lt;p style="line-height: 25px; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; "&gt;&lt;span style="line-height: 25px; font-family: &amp;#39;Courier New&amp;#39;; font-size: medium; "&gt;Flex has its default download bar, and it will display the loading progress by default. As flex Official help document said, you can change or extend the default download bar to display what you want to do. Because the DownloadProgressBar extends from Sprite with &lt;span style="line-height: 22px; "&gt;&lt;a href="http://127.0.0.1:52374/help/topic/com.adobe.flexbuilder.help/langref/mx/preloaders/IPreloaderDisplay.html" style="line-height: 21px; color: rgb(201, 14, 0); font: normal normal normal 12px/normal Verdana, Arial, Helvetica, 宋体, sans-serif; text-decoration: underline; "&gt;mx.preloaders.IPreloaderDisplay&lt;/a&gt;, it&amp;#39;s easy to add your MovieClip into the default download bar.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="line-height: 25px; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; "&gt;&lt;font face="&amp;#39;Courier New&amp;#39;" style="line-height: 25px; "&gt;&lt;span style="line-height: 25px; font-size: medium; "&gt;&lt;span style="line-height: 22px; "&gt;&lt;br style="line-height: 28px; "&gt; &lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style="line-height: 25px; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; "&gt;&lt;font face="&amp;#39;Courier New&amp;#39;" style="line-height: 25px; "&gt;&lt;span style="line-height: 25px; font-size: medium; "&gt;&lt;span style="line-height: 22px; "&gt;First, you should make a loader in flash as a MovieClip. And then you can just add it into the default download progress bar. So the your loader will displayed at first.&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt; &lt;p style="line-height: 25px; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; "&gt;&lt;font face="&amp;#39;Courier New&amp;#39;" style="line-height: 25px; "&gt;&lt;span style="line-height: 25px; font-size: medium; "&gt;&lt;span style="line-height: 22px; "&gt;&lt;br style="line-height: 28px; "&gt; &lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style="line-height: 25px; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; "&gt;&lt;font face="&amp;#39;Courier New&amp;#39;" style="line-height: 25px; "&gt;&lt;span style="line-height: 28px; font-size: medium; "&gt;Sometimes you want the user to click a button to be continue. So you need make that button as a independent movieclip, and use it in your download progress bar class. As well you want show the progress in some kind of animation, so that movieclip will be indepent and have a public method to show it.&lt;/span&gt;&lt;/font&gt;&lt;/p&gt; &lt;p style="line-height: 25px; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; "&gt;&lt;font face="&amp;#39;Courier New&amp;#39;" style="line-height: 25px; "&gt;&lt;span style="line-height: 28px; font-size: medium; "&gt;&lt;br style="line-height: 28px; "&gt; &lt;/span&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style="line-height: 25px; margin-top: 10px; margin-right: 0px; margin-bottom: 10px; margin-left: 0px; "&gt;&lt;font face="&amp;#39;Courier New&amp;#39;" style="line-height: 25px; "&gt;&lt;span style="line-height: 25px; font-size: medium; "&gt;I have done that already, and as I can see. Whatever your codes inside the frame or outside as a class, Flex will find them correctly: all functions and variables inside frames will be public, and if every function should be match. If you made a method to be a event handler without code to add it, you will never see your object in Flex. It&amp;#39;s really convience. From the beginning of AS, flash retain all codes inside frames by default. In AS3, OOP is coming out to be true. So we can just write a class outside to be connected with our assets. The question is that how to migrate AS2 to AS3? Flash give us the way to act all sources as one thing in a document class. It means you can access the code inside frames (first or ??) from outside, and access the code outside from inside frames (shoud be test first?). As flex is coming, it provides us a way to share with assets between Flash and Flex. You can access any class from Flash.SWC in each application. And in the SWC, every assest being exported will be a share library and every method and varible in started frames and outside class will be public to everyone. (To be continued)&lt;/span&gt;&lt;/font&gt;&lt;/p&gt; &lt;/span&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/481882308993397518-1236622898283067879?l=freelancerworker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://freelancerworker.blogspot.com/feeds/1236622898283067879/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://freelancerworker.blogspot.com/2010/05/web-game-programming-in-flexflash.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/481882308993397518/posts/default/1236622898283067879'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/481882308993397518/posts/default/1236622898283067879'/><link rel='alternate' type='text/html' href='http://freelancerworker.blogspot.com/2010/05/web-game-programming-in-flexflash.html' title='Web Game Programming In Flex/Flash'/><author><name>You are welcome!</name><uri>http://www.blogger.com/profile/03813861502555536098</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-481882308993397518.post-9000216243620472223</id><published>2009-06-07T07:08:00.001-07:00</published><updated>2009-06-07T07:27:49.274-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='map'/><category scheme='http://www.blogger.com/atom/ns#' term='api'/><category scheme='http://www.blogger.com/atom/ns#' term='tutorial'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><title type='text'>Google Map Tutorial - make a shape around the zone</title><content type='html'>&lt;div&gt;I am not good at google map API programming, just know little about it really. But I think that it&amp;#39;s a good and power tool for applications in the Internet. There are many good tutorials in the Internet. And I think that the better way to learn google map API from different projects, whatever. If you have no goal, it&amp;#39;s hard to learn something pratical and useful. &lt;/div&gt;  &lt;div&gt; &lt;/div&gt; &lt;div&gt;In this script, you may note that there are many coordinates in it. That&amp;#39;s the shape coordinates data around the zone. If you want to get that from different area, you can use google earth and its kml function to retrieve it. That&amp;#39;s easy to do. Note: all scripts comes from&lt;/div&gt;  &lt;div&gt;&lt;a href="http://www.carinsurance.com/state/Washington-car-insurance.aspx"&gt;http://www.carinsurance.com/state/Washington-car-insurance.aspx&lt;/a&gt;, thanks for the author.&lt;/div&gt; &lt;div&gt; &lt;/div&gt; &lt;div&gt;Google map API: &lt;a href="http://code.google.com/apis/maps/documentation/reference.html"&gt;http://code.google.com/apis/maps/documentation/reference.html&lt;/a&gt;&lt;/div&gt; &lt;div&gt;Google map KML Reference: &lt;a href="http://code.google.com/apis/kml/documentation/kml_tut.html"&gt;http://code.google.com/apis/kml/documentation/kml_tut.html&lt;/a&gt;&lt;/div&gt; &lt;div&gt; &lt;/div&gt; &lt;code&gt;&lt;br /&gt;1. add this in your html tag: xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml&lt;br /&gt;2. add this in script tag inside the head tag:&lt;br /&gt;src="http://maps.google.com/maps?file=api&amp;amp;v=2&amp;amp;key=" &lt;br /&gt;3. add this in a script:&lt;br /&gt;//&amp;lt;![CDATA[  &lt;br /&gt;function load() {&lt;br /&gt; if (GBrowserIsCompatible()) {&lt;br /&gt;var polys = [];&lt;br /&gt;var labels = [];&lt;br /&gt;// === Algorithm from http://alienryderflex.com/polygon/ &lt;br /&gt;GPolygon.prototype.Contains = function(point) { &lt;br /&gt;var j=0;&lt;br /&gt;var oddNodes = false; &lt;br /&gt;var x = point.lng();&lt;br /&gt;var y = point.lat(); &lt;br /&gt;for (var i=0; i &lt; this.getVertexCount(); i++) {&lt;br /&gt; j++;&lt;br /&gt; if (j == this.getVertexCount()) {j = 0;}&lt;br /&gt;if (((this.getVertex(i).lat() &lt; y) &amp;&amp; (this.getVertex(j).lat() &gt;= y))&lt;br /&gt; || ((this.getVertex(j).lat() &lt; y) &amp;&amp; (this.getVertex(i).lat() &gt;= y))) {&lt;br /&gt;  if ( this.getVertex(i).lng() + (y - this.getVertex(i).lat()) &lt;br /&gt; /  (this.getVertex(j).lat()-this.getVertex(i).lat())&lt;br /&gt;*  (this.getVertex(j).lng() - this.getVertex(i).lng())&lt;x ) {&lt;br /&gt; oddNodes = !oddNodes&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;return oddNodes;&lt;br /&gt;}&lt;br /&gt;var map = new GMap2(document.getElementById("map"));&lt;br /&gt;map.addControl(new GSmallMapControl());&lt;br /&gt;map.addControl(new GMapTypeControl());&lt;br /&gt;map.addControl(new GOverviewMapControl(),&lt;br /&gt;               new GControlPosition(G_ANCHOR_BOTTOM_RIGHT, new GSize(5, 5)));&lt;br /&gt;var center = new GLatLng(47.391700,-121.570800);&lt;br /&gt;map.setCenter(center,6);&lt;br /&gt;iconDot = new GIcon();&lt;br /&gt;iconDot.image =""; // put your own img url here&lt;br /&gt;iconDot.shadow = ""; // put your own shade img url here&lt;br /&gt;iconDot.iconSize = new GSize(25, 18);&lt;br /&gt;iconDot.shadowSize = new GSize(40, 18);&lt;br /&gt;iconDot.iconAnchor = new GPoint(25, 18);&lt;br /&gt;iconDot.infoWindowAnchor = new GPoint(25,18);&lt;br /&gt;iconDot.infoShadowAnchor = new GPoint(18, 25);&lt;br /&gt;var marker = new GMarker(center, iconDot)&lt;br /&gt;map.addOverlay(marker);&lt;br /&gt;GEvent.addListener(marker,"mouseover", function() {&lt;br /&gt;marker.openInfoWindowHtml("") // put your html code here.&lt;br /&gt;});&lt;br /&gt;var label  = "Washington";&lt;br /&gt;var color = "#88ff00";&lt;br /&gt;var pts = [];&lt;br /&gt;pts[0] = new GLatLng(49.0023,-123.3208);&lt;br /&gt;pts[1] = new GLatLng(49.0027,-123.0338);&lt;br /&gt;pts[2] = new GLatLng(49.0018,-122.065);&lt;br /&gt;pts[3] = new GLatLng(48.9973,-121.7491);&lt;br /&gt;pts[4] = new GLatLng(48.9991,-121.5912);&lt;br /&gt;pts[5] = new GLatLng(49.0009,-119.6082);&lt;br /&gt;pts[6] = new GLatLng(49.0005,-118.0378);&lt;br /&gt;pts[7] = new GLatLng(48.9996,-117.0319);&lt;br /&gt;pts[8] = new GLatLng(47.9614,-117.0415);&lt;br /&gt;pts[9] = new GLatLng(46.506,-117.0394);&lt;br /&gt;pts[10] = new GLatLng(46.4274,-117.0394);&lt;br /&gt;pts[11] = new GLatLng(46.3498,-117.0621);&lt;br /&gt;pts[12] = new GLatLng(46.3384,-117.0277);&lt;br /&gt;pts[13] = new GLatLng(46.2848,-116.9879);&lt;br /&gt;pts[14] = new GLatLng(46.2388,-116.9577);&lt;br /&gt;pts[15] = new GLatLng(46.2022,-116.9659);&lt;br /&gt;pts[16] = new GLatLng(46.1722,-116.9254);&lt;br /&gt;pts[17] = new GLatLng(46.1432,-116.9357);&lt;br /&gt;pts[18] = new GLatLng(46.1009,-116.9584);&lt;br /&gt;pts[19] = new GLatLng(46.0785,-116.9762);&lt;br /&gt;pts[20] = new GLatLng(46.0537,-116.9433);&lt;br /&gt;pts[21] = new GLatLng(45.996,-116.9165);&lt;br /&gt;pts[22] = new GLatLng(46.0008,-118.033);&lt;br /&gt;pts[23] = new GLatLng(45.9998,-118.9867);&lt;br /&gt;pts[24] = new GLatLng(45.932,-119.1302);&lt;br /&gt;pts[25] = new GLatLng(45.9278,-119.1708);&lt;br /&gt;pts[26] = new GLatLng(45.9402,-119.2559);&lt;br /&gt;pts[27] = new GLatLng(45.9354,-119.3047);&lt;br /&gt;pts[28] = new GLatLng(45.922,-119.3644);&lt;br /&gt;pts[29] = new GLatLng(45.9172,-119.4386);&lt;br /&gt;pts[30] = new GLatLng(45.9067,-119.4894);&lt;br /&gt;pts[31] = new GLatLng(45.9249,-119.5724);&lt;br /&gt;pts[32] = new GLatLng(45.9196,-119.6013);&lt;br /&gt;pts[33] = new GLatLng(45.8565,-119.67);&lt;br /&gt;pts[34] = new GLatLng(45.8479,-119.8052);&lt;br /&gt;pts[35] = new GLatLng(45.8278,-119.9096);&lt;br /&gt;pts[36] = new GLatLng(45.8245,-119.9652);&lt;br /&gt;pts[37] = new GLatLng(45.7852,-120.071);&lt;br /&gt;pts[38] = new GLatLng(45.7623,-120.1705);&lt;br /&gt;pts[39] = new GLatLng(45.7258,-120.211);&lt;br /&gt;pts[40] = new GLatLng(45.7057,-120.3628);&lt;br /&gt;pts[41] = new GLatLng(45.6951,-120.4829);&lt;br /&gt;pts[42] = new GLatLng(45.7469,-120.5942);&lt;br /&gt;pts[43] = new GLatLng(45.746,-120.634);&lt;br /&gt;pts[44] = new GLatLng(45.7143,-120.6924);&lt;br /&gt;pts[45] = new GLatLng(45.6721,-120.8558);&lt;br /&gt;pts[46] = new GLatLng(45.6409,-120.9142);&lt;br /&gt;pts[47] = new GLatLng(45.6572,-120.9471);&lt;br /&gt;pts[48] = new GLatLng(45.6419,-120.9787);&lt;br /&gt;pts[49] = new GLatLng(45.6529,-121.0645);&lt;br /&gt;pts[50] = new GLatLng(45.6078,-121.1469);&lt;br /&gt;pts[51] = new GLatLng(45.6083,-121.1847);&lt;br /&gt;pts[52] = new GLatLng(45.6721,-121.2177);&lt;br /&gt;pts[53] = new GLatLng(45.7057,-121.3392);&lt;br /&gt;pts[54] = new GLatLng(45.6932,-121.401);&lt;br /&gt;pts[55] = new GLatLng(45.7263,-121.5328);&lt;br /&gt;pts[56] = new GLatLng(45.7091,-121.6145);&lt;br /&gt;pts[57] = new GLatLng(45.6947,-121.7361);&lt;br /&gt;pts[58] = new GLatLng(45.7067,-121.8095);&lt;br /&gt;pts[59] = new GLatLng(45.6452,-121.9338);&lt;br /&gt;pts[60] = new GLatLng(45.6088,-122.0451);&lt;br /&gt;pts[61] = new GLatLng(45.5833,-122.1089);&lt;br /&gt;pts[62] = new GLatLng(45.5838,-122.1426);&lt;br /&gt;pts[63] = new GLatLng(45.566,-122.2009);&lt;br /&gt;pts[64] = new GLatLng(45.5439,-122.2641);&lt;br /&gt;pts[65] = new GLatLng(45.5482,-122.3321);&lt;br /&gt;pts[66] = new GLatLng(45.5756,-122.3795);&lt;br /&gt;pts[67] = new GLatLng(45.5636,-122.4392);&lt;br /&gt;pts[68] = new GLatLng(45.6006,-122.5676);&lt;br /&gt;pts[69] = new GLatLng(45.6236,-122.6891);&lt;br /&gt;pts[70] = new GLatLng(45.6582,-122.7647);&lt;br /&gt;pts[71] = new GLatLng(45.6817,-122.775);&lt;br /&gt;pts[72] = new GLatLng(45.7613,-122.7619);&lt;br /&gt;pts[73] = new GLatLng(45.8106,-122.7962);&lt;br /&gt;pts[74] = new GLatLng(45.8642,-122.7839);&lt;br /&gt;pts[75] = new GLatLng(45.912,-122.8114);&lt;br /&gt;pts[76] = new GLatLng(45.9612,-122.8148);&lt;br /&gt;pts[77] = new GLatLng(46.016,-122.8587);&lt;br /&gt;pts[78] = new GLatLng(46.0604,-122.8848);&lt;br /&gt;pts[79] = new GLatLng(46.0832,-122.9034);&lt;br /&gt;pts[80] = new GLatLng(46.1028,-122.9597);&lt;br /&gt;pts[81] = new GLatLng(46.1556,-123.0579);&lt;br /&gt;pts[82] = new GLatLng(46.1865,-123.121);&lt;br /&gt;pts[83] = new GLatLng(46.1893,-123.1664);&lt;br /&gt;pts[84] = new GLatLng(46.1446,-123.281);&lt;br /&gt;pts[85] = new GLatLng(46.147,-123.3703);&lt;br /&gt;pts[86] = new GLatLng(46.1822,-123.4314);&lt;br /&gt;pts[87] = new GLatLng(46.2293,-123.4287);&lt;br /&gt;pts[88] = new GLatLng(46.2691,-123.4946);&lt;br /&gt;pts[89] = new GLatLng(46.2582,-123.5557);&lt;br /&gt;pts[90] = new GLatLng(46.2573,-123.6209);&lt;br /&gt;pts[91] = new GLatLng(46.2497,-123.6875);&lt;br /&gt;pts[92] = new GLatLng(46.2691,-123.7404);&lt;br /&gt;pts[93] = new GLatLng(46.235,-123.8729);&lt;br /&gt;pts[94] = new GLatLng(46.2383,-123.9292);&lt;br /&gt;pts[95] = new GLatLng(46.2677,-123.9711);&lt;br /&gt;pts[96] = new GLatLng(46.2924,-124.0212);&lt;br /&gt;pts[97] = new GLatLng(46.2653,-124.0329);&lt;br /&gt;pts[98] = new GLatLng(46.2596,-124.2444);&lt;br /&gt;pts[99] = new GLatLng(46.4312,-124.2691);&lt;br /&gt;pts[100] = new GLatLng(46.8386,-124.3529);&lt;br /&gt;pts[101] = new GLatLng(47.1832,-124.438);&lt;br /&gt;pts[102] = new GLatLng(47.4689,-124.5616);&lt;br /&gt;pts[103] = new GLatLng(47.8012,-124.7566);&lt;br /&gt;pts[104] = new GLatLng(48.0423,-124.8679);&lt;br /&gt;pts[105] = new GLatLng(48.2457,-124.8679);&lt;br /&gt;pts[106] = new GLatLng(48.3727,-124.8486);&lt;br /&gt;pts[107] = new GLatLng(48.4984,-124.7539);&lt;br /&gt;pts[108] = new GLatLng(48.4096,-124.4174);&lt;br /&gt;pts[109] = new GLatLng(48.3599,-124.2389);&lt;br /&gt;pts[110] = new GLatLng(48.2964,-124.0116);&lt;br /&gt;pts[111] = new GLatLng(48.2795,-123.9141);&lt;br /&gt;pts[112] = new GLatLng(48.2247,-123.5413);&lt;br /&gt;pts[113] = new GLatLng(48.2539,-123.3998);&lt;br /&gt;pts[114] = new GLatLng(48.2841,-123.2501);&lt;br /&gt;pts[115] = new GLatLng(48.4233,-123.1169);&lt;br /&gt;pts[116] = new GLatLng(48.4533,-123.1609);&lt;br /&gt;pts[117] = new GLatLng(48.5548,-123.222);&lt;br /&gt;pts[118] = new GLatLng(48.5902,-123.2336);&lt;br /&gt;pts[119] = new GLatLng(48.6901,-123.2721);&lt;br /&gt;pts[120] = new GLatLng(48.7675,-123.0084);&lt;br /&gt;pts[121] = new GLatLng(48.8313,-123.0084);&lt;br /&gt;pts[122] = new GLatLng(49.0023,-123.3215);&lt;br /&gt;var poly = new GPolygon(pts,"#333399",3,1,color,.1);&lt;br /&gt;polys.push(poly);&lt;br /&gt;labels.push(label);&lt;br /&gt;map.addOverlay(poly);&lt;br /&gt;}&lt;br /&gt;else {&lt;br /&gt;alert("Sorry, Google Maps is not compatible with this browser.");&lt;br /&gt;   }&lt;br /&gt;}&lt;br /&gt;//]]&gt;&lt;br /&gt;5. add this in the body tag: onLoad="load()" onunload="GUnload()"&lt;br /&gt;6. add this div tag in your body tag: id="map" style="height:400px;width:400px"&lt;br /&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/481882308993397518-9000216243620472223?l=freelancerworker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://freelancerworker.blogspot.com/feeds/9000216243620472223/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://freelancerworker.blogspot.com/2009/06/google-map-tutorial-make-shape-around.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/481882308993397518/posts/default/9000216243620472223'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/481882308993397518/posts/default/9000216243620472223'/><link rel='alternate' type='text/html' href='http://freelancerworker.blogspot.com/2009/06/google-map-tutorial-make-shape-around.html' title='Google Map Tutorial - make a shape around the zone'/><author><name>You are welcome!</name><uri>http://www.blogger.com/profile/03813861502555536098</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-481882308993397518.post-55122732216164249</id><published>2009-05-26T22:49:00.001-07:00</published><updated>2009-05-26T22:49:36.466-07:00</updated><title type='text'>PHP Regular Expression Resource</title><content type='html'>&lt;div&gt;I have done some kind of PHP works by using regular expression, and it&amp;#39;s very powerful I think. Even though at first I feel it&amp;#39;s very hard to understand, yeah, it&amp;#39;s a new thing for me, but as you have been using it in the project, you can feel that it&amp;#39;s not hard at all. I have read something about Regular Expressions, in wiki, and you can find the most basic one, but not good enough to do with your job. I think, that is the good one for programmer in PHP:&lt;/div&gt;  &lt;div&gt;&lt;a href="http://www.perl.com/doc/manual/html/pod/perlre.html"&gt;http://www.perl.com/doc/manual/html/pod/perlre.html&lt;/a&gt;&lt;/div&gt; &lt;div&gt;&amp;nbsp;&lt;/div&gt; &lt;div&gt;I don&amp;#39;t want to say anything about how to use it, because I am still a beginner. But I&amp;#39;d like to mention something here to know, if you are finding something within html, you should note that:&lt;/div&gt; &lt;div&gt;&amp;lt;.*&amp;gt;&lt;/div&gt; &lt;div&gt;&amp;lt;.*?&amp;gt;&lt;/div&gt; &lt;div&gt;&amp;lt;(\s|.)*?&amp;gt;&lt;/div&gt; &lt;div&gt;&amp;lt;[^&amp;gt;]*&amp;gt;&lt;/div&gt; &lt;div&gt;&amp;nbsp;&lt;/div&gt; &lt;div&gt;The first one will never work because &amp;#39;*&amp;#39; is greedy, so it will eat up &amp;#39;&amp;gt;&amp;#39;. along a &amp;#39;?&amp;#39; is to avoid this situation.&lt;/div&gt; &lt;div&gt;The second will never work well sometimes because &amp;#39;.&amp;#39; will never represent &amp;#39;newline&amp;#39; by default&lt;/div&gt; &lt;div&gt;The third one will work well but it&amp;#39;s not good enough, sometimes in PHP &amp;#39;preg_match&amp;#39; will retain something between &amp;#39;(&amp;#39; &amp;#39;)&amp;#39;.&lt;/div&gt; &lt;div&gt;The forth seems not good but it&amp;#39;s really the good one.&lt;/div&gt; &lt;div&gt;&amp;nbsp;&lt;/div&gt; &lt;div&gt;Blogger.com and &lt;a href="http://blogspot.com"&gt;blogspot.com&lt;/a&gt; are both blocked by the insane one here, you know what I mean.&amp;nbsp;&amp;nbsp;&lt;/div&gt; &lt;div&gt;Good Luck！&lt;/div&gt; &lt;div&gt;&lt;a href="http://freelancerworker.blogspot.com/"&gt;http://freelancerworker.blogspot.com&lt;/a&gt;&lt;/div&gt; &lt;div&gt;&amp;nbsp;&lt;/div&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/481882308993397518-55122732216164249?l=freelancerworker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://freelancerworker.blogspot.com/feeds/55122732216164249/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://freelancerworker.blogspot.com/2009/05/php-regular-expression-resource.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/481882308993397518/posts/default/55122732216164249'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/481882308993397518/posts/default/55122732216164249'/><link rel='alternate' type='text/html' href='http://freelancerworker.blogspot.com/2009/05/php-regular-expression-resource.html' title='PHP Regular Expression Resource'/><author><name>You are welcome!</name><uri>http://www.blogger.com/profile/03813861502555536098</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-481882308993397518.post-3090046464830272850</id><published>2009-05-24T02:49:00.001-07:00</published><updated>2009-05-24T21:48:58.817-07:00</updated><title type='text'>Sharing, Simple PHP CURL Class Script</title><content type='html'>&lt;div&gt;Hi, I just do some scripts by using curl, and I have made it as a simple class. So I hope it helps for you if you need do something by that. The most important thing is the format of headers. Just like that: &lt;/div&gt;&lt;code&gt;&lt;div&gt;$headers = array(&lt;br&gt; &amp;#39;Accept: */*&amp;#39;, &lt;br&gt; &amp;#39;Accept-Language: en-US&amp;#39;,&lt;br&gt; &amp;#39;UA-CPU: x86&amp;#39;,&lt;br&gt; &amp;#39;User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2; .NET CLR 1.1.4322; .NET CLR 2.0.50727)&amp;#39;,&lt;br&gt;  &amp;#39;Host&amp;#39; =&amp;gt; &amp;#39;Host: &amp;#39;,&lt;br&gt; &amp;#39;Connection: Keep-Alive&amp;#39;);&lt;/div&gt; &lt;/code&gt;&lt;div&gt;And you can use HttpWatch Professional to watch the http request detail in IE: &lt;a href="http://www.httpwatch.com/"&gt;http://www.httpwatch.com/&lt;/a&gt;, so you can simulate any http request by that.&lt;/div&gt; &lt;div&gt; &lt;/div&gt; &lt;div&gt;&lt;code&gt;&lt;/div&gt; &lt;div&gt;class HTTPRequest {&lt;br&gt; private $url;&lt;br&gt; private $https;&lt;br&gt; private $headers;&lt;br&gt; private $withCookies;&lt;br&gt; private $saveCookies;&lt;br&gt; private $cookieFileName;&lt;br&gt; private $maxRedirects;&lt;br&gt; private $autoRedirect;&lt;br&gt;  private $outputHeader;&lt;br&gt; private $errorMessage;&lt;br&gt; private $debug;&lt;br&gt; private $ch;&lt;br&gt; &lt;br&gt; public function __construct()  &lt;br&gt; {&lt;br&gt;  init();&lt;br&gt; }&lt;br&gt; &lt;br&gt; public function init ()&lt;br&gt; {&lt;br&gt;  $this-&amp;gt;url = &amp;#39;&amp;#39;;&lt;br&gt;   $this-&amp;gt;https = false;&lt;br&gt;  $this-&amp;gt;headers = null;&lt;br&gt;  $this-&amp;gt;withCookies = $this-&amp;gt;saveCookies = false;&lt;br&gt;  $this-&amp;gt;cookieFileName = null;&lt;br&gt;  $this-&amp;gt;maxRedirects = null;&lt;br&gt;  $this-&amp;gt;autoRedirect = $this-&amp;gt;outputHeader = false;&lt;br&gt;   $this-&amp;gt;errorMessage = null;&lt;br&gt;  $this-&amp;gt;debug = false;&lt;br&gt;  $this-&amp;gt;ch = null;&lt;br&gt; }&lt;br&gt; &lt;br&gt; public function setOptions ($autoRedirect, $maxRedirects, $outputHeader, $debug)&lt;br&gt; {&lt;br&gt;  $this-&amp;gt;autoRedirect = $autoRedirect;&lt;br&gt;   $this-&amp;gt;maxRedirects = $maxRedirects;&lt;br&gt;  $this-&amp;gt;outputHeader = $outputHeader;&lt;br&gt;  $this-&amp;gt;debug = $debug;&lt;br&gt; }&lt;br&gt; // 1. carry cookies in request or not&lt;br&gt; // 2. save cookies in a local file&lt;br&gt; public function setCookies($withCookies, $saveCookies, $cookieFileName)&lt;br&gt;  {&lt;br&gt;  if ($cookieFileName != null) {&lt;br&gt;   $this-&amp;gt;cookieFileName = dirname(__FILE__) . &amp;#39;\\&amp;#39; . $cookieFileName;&lt;br&gt;  } else {&lt;br&gt;   $this-&amp;gt;cookieFileName = null;&lt;br&gt;  }&lt;br&gt;  $this-&amp;gt;withCookies = $withCookies;&lt;br&gt;   $this-&amp;gt;saveCookies = $saveCookies;&lt;br&gt; }&lt;br&gt; &lt;br&gt; public function setHeaders ($headers, $noHttps)&lt;br&gt; {&lt;br&gt;  $this-&amp;gt;https = $noHttps;&lt;br&gt;  $this-&amp;gt;headers = $headers;&lt;br&gt; }&lt;br&gt; &lt;br&gt; private function request ($method, $url, $body, &amp;amp;$returned)&lt;br&gt;  { &lt;br&gt;  $this-&amp;gt;ch = curl_init();&lt;br&gt;  curl_setopt ($this-&amp;gt;ch, CURLOPT_URL, $url);&lt;br&gt;  curl_setopt ($this-&amp;gt;ch, CURLOPT_VERBOSE, true);&lt;br&gt;  &lt;br&gt;  if (!strcasecmp ($method, &amp;quot;post&amp;quot;))&lt;br&gt;  {&lt;br&gt;   curl_setopt ($this-&amp;gt;ch, CURLOPT_POST, true);&lt;br&gt;    curl_setopt ($this-&amp;gt;ch, CURLOPT_POSTFIELDS, $body);&lt;br&gt;  }&lt;/div&gt; &lt;div&gt;  //curl_setopt ($this-&amp;gt;ch, CURLOPT_CONNECTTIMEOUT, 30); &lt;br&gt;/*  curl_setopt ($this-&amp;gt;ch, CURLOPT_BUFFERSIZE, 32768);&lt;br&gt;  curl_setopt ($this-&amp;gt;ch, CURLOPT_FORBID_REUSE, true);&lt;br&gt;  curl_setopt ($this-&amp;gt;ch, CURLOPT_FRESH_CONNECT, true);&lt;br&gt; */  &lt;br&gt;  curl_setopt ($this-&amp;gt;ch, CURLOPT_RETURNTRANSFER, true); &lt;br&gt;  curl_setopt ($this-&amp;gt;ch, CURLOPT_SSL_VERIFYPEER, $this-&amp;gt;https);&lt;br&gt;  curl_setopt ($this-&amp;gt;ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);&lt;br&gt;   curl_setopt ($this-&amp;gt;ch, CURLOPT_HTTPHEADER, $this-&amp;gt;headers);&lt;/div&gt; &lt;div&gt;  curl_setopt ($this-&amp;gt;ch, CURLOPT_FOLLOWLOCATION, $this-&amp;gt;autoRedirect); &lt;br&gt;  curl_setopt ($this-&amp;gt;ch, CURLOPT_HEADER, $this-&amp;gt;outputHeader);&lt;br&gt;  &lt;br&gt;  if ($this-&amp;gt;withCookies === true) {&lt;br&gt;   curl_setopt ($this-&amp;gt;ch, CURLOPT_COOKIEFILE, $this-&amp;gt;cookieFileName);&lt;br&gt;   }&lt;/div&gt; &lt;div&gt;  if ($this-&amp;gt;saveCookies === true) {&lt;br&gt;   if (!empty ($this-&amp;gt;cookieFileName)) {&lt;br&gt;    curl_setopt ($this-&amp;gt;ch, CURLOPT_COOKIEJAR, $this-&amp;gt;cookieFileName);&lt;br&gt;   }&lt;br&gt;  }&lt;br&gt;  &lt;br&gt;  $returned = curl_exec ($this-&amp;gt;ch);&lt;br&gt;   if( $returned == false )&lt;br&gt;  {&lt;br&gt;   $this-&amp;gt;errorMessage = curl_error($this-&amp;gt;ch);&lt;br&gt;   return false;&lt;br&gt;  }&lt;br&gt;  return true;&lt;br&gt; } &lt;br&gt;  &lt;br&gt; public function get($url, &amp;amp;$returned)&lt;br&gt; {&lt;br&gt;  return $this-&amp;gt;request (&amp;#39;get&amp;#39;, $url, null, $returned);&lt;br&gt;  }&lt;br&gt; &lt;br&gt; public function post($url, $body, &amp;amp;$returned)&lt;br&gt; {&lt;br&gt;  return $this-&amp;gt;request (&amp;#39;post&amp;#39;, $url, $body, $returned);&lt;br&gt; }&lt;br&gt; &lt;br&gt; public function error()&lt;br&gt; {&lt;br&gt;  return $this-&amp;gt;errorMessage;&lt;br&gt;  }&lt;br&gt; &lt;br&gt; public function getInfo(&amp;amp;$info)&lt;br&gt; {&lt;br&gt;  $info = curl_getinfo ($this-&amp;gt;ch);&lt;br&gt; }&lt;br&gt; &lt;br&gt; public function getHttpCode ()&lt;br&gt; {&lt;br&gt;  $this-&amp;gt;getInfo ($info);&lt;br&gt;  return $info[&amp;#39;http_code&amp;#39;];&lt;br&gt;  }&lt;br&gt; &lt;br&gt; public function getHttpMessage ($httpCode)&lt;br&gt; {&lt;br&gt;  if ($httpCode[0] == &amp;#39;2&amp;#39;) {&lt;br&gt;   return &amp;#39;ok&amp;#39;;&lt;br&gt;  } else if ($httpCode[0] == &amp;#39;3&amp;#39;) {&lt;br&gt;   return &amp;#39;redirect&amp;#39;;&lt;br&gt;  } else if ($httpCode[0] == &amp;#39;4&amp;#39;) {&lt;br&gt;    return &amp;#39;failed&amp;#39;;&lt;br&gt;  } else if ($httpCode[0] == &amp;#39;5&amp;#39;) {&lt;br&gt;   return &amp;#39;server error&amp;#39;;&lt;br&gt;  }&lt;br&gt; }&lt;br&gt; &lt;br&gt; public function close()&lt;br&gt; {&lt;br&gt;  curl_close ($this-&amp;gt;ch);&lt;br&gt; }&lt;br&gt;}&lt;/div&gt; &lt;div&gt;&lt;/code&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/481882308993397518-3090046464830272850?l=freelancerworker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://freelancerworker.blogspot.com/feeds/3090046464830272850/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://freelancerworker.blogspot.com/2009/05/sharing-simple-php-curl-class-script.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/481882308993397518/posts/default/3090046464830272850'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/481882308993397518/posts/default/3090046464830272850'/><link rel='alternate' type='text/html' href='http://freelancerworker.blogspot.com/2009/05/sharing-simple-php-curl-class-script.html' title='Sharing, Simple PHP CURL Class Script'/><author><name>You are welcome!</name><uri>http://www.blogger.com/profile/03813861502555536098</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-481882308993397518.post-3296425477615523348</id><published>2009-02-20T02:26:00.000-08:00</published><updated>2009-05-15T07:17:17.900-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='as3'/><category scheme='http://www.blogger.com/atom/ns#' term='file upload'/><category scheme='http://www.blogger.com/atom/ns#' term='asp.net 2.0'/><category scheme='http://www.blogger.com/atom/ns#' term='file uploader'/><category scheme='http://www.blogger.com/atom/ns#' term='flash'/><title type='text'>Sample Flash File Uploader In AS3</title><content type='html'>&lt;span style="font-family:trebuchet ms;"&gt;&lt;em&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;em&gt;In many cases, we need a web file uploader with progress bar. That's easy in Flash, and I think it is a better way. You know gmail use Flash as its file uploader component. A sample file uploader is extremely easy in Flash, well, compare to that with Javascript and serverside scripts. &lt;br /&gt;&lt;br /&gt;And the best is you don't need change your serverside script for that, just like what you do in HTML, the only thing you need note is the field name used by Flash, and it can be changed in actionscript.&lt;br /&gt;&lt;br /&gt;Here is a good example in ASP.NET 2.0. And the flash CS3 help document is the best source I ever read so far.In the following codes, I assume you have a fla file and two buttons in it, one is named 'browser_btn', the other is named 'upload_btn'. &lt;/em&gt;&lt;/span&gt; &lt;a href="http://shang-liang.com/blog/flash-upload-file-with-aspnet/"&gt;http://shang-liang.com/blog/flash-upload-file-with-aspnet/&lt;/a&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;/**&lt;br /&gt; * File uploader in Actionscript 3.0 with Adobe Flash CS3&lt;br /&gt; * @author zero&lt;br /&gt; * @blog http://freelancerworker.blogspot.com&lt;br /&gt; */ &lt;br /&gt;import flash.events.*;&lt;br /&gt;import flash.net.FileReference;&lt;br /&gt;import flash.net.FileReferenceList;&lt;br /&gt;import flash.net.FileFilter;&lt;br /&gt;import flash.net.URLRequest;&lt;br /&gt;&lt;br /&gt;var file:FileReference;&lt;br /&gt;var uploaderRequest:URLRequest;&lt;br /&gt;var isSelected:Boolean;&lt;br /&gt;var errorMessage:String = null;&lt;br /&gt;var uploadServerURL:String = 'upload.php';&lt;br /&gt;&lt;br /&gt;function showErrorMessage():void {&lt;br /&gt; if ( this.errorMessage == null || this.errorMessage == "" ) {&lt;br /&gt;  return;&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;function showMessage(msg:String):void {&lt;br /&gt; if ( msg == null)&lt;br /&gt;  return;&lt;br /&gt; //&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;function showProgressMessage(msg:String):void {&lt;br /&gt; if (msg == null)&lt;br /&gt; {&lt;br /&gt;  return;&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;// initialize &lt;br /&gt;function init() {&lt;br /&gt; this.browser_btn.addEventListener(MouseEvent.CLICK, btnBrowser_click);&lt;br /&gt; this.upload_btn.addEventListener(MouseEvent.CLICK, btnUpload_click);&lt;br /&gt;&lt;br /&gt; this.file = new FileReference();&lt;br /&gt;&lt;br /&gt; this.file.addEventListener(Event.SELECT, file_onSelected);&lt;br /&gt; this.file.addEventListener(Event.OPEN, file_onOpen);&lt;br /&gt; this.file.addEventListener(Event.CANCEL, file_onCancel);&lt;br /&gt; this.file.addEventListener(ProgressEvent.PROGRESS, file_onProgress);&lt;br /&gt; this.file.addEventListener(Event.COMPLETE, file_onComplete);&lt;br /&gt; this.file.addEventListener(SecurityErrorEvent.SECURITY_ERROR, file_onErrorSecurity);&lt;br /&gt; this.file.addEventListener(HTTPStatusEvent.HTTP_STATUS, file_onErrorHTTP);&lt;br /&gt; this.file.addEventListener(IOErrorEvent.IO_ERROR, file_onErrorIO);&lt;br /&gt;  this.file.addEventListener(DataEvent.UPLOAD_COMPLETE_DATA, file_onUploadCompleteData);&lt;br /&gt;&lt;br /&gt; this.isSelected = false;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;// start browsing&lt;br /&gt;function btnBrowser_click(evt:MouseEvent) {&lt;br /&gt; var mp3Filter:FileFilter = new FileFilter("Mp3 (*.mp3)", "*.mp3");&lt;br /&gt; //var textFilter:FileFilter = new FileFilter("Text Files (*.txt, *.rtf)", "*.txt; *.rtf");&lt;br /&gt;&lt;br /&gt; try {&lt;br /&gt;  var success:Boolean = this.file.browse(new Array (mp3Filter));&lt;br /&gt; } catch (error:Error) {&lt;br /&gt;  this.errorMessage = "Internal error, retry.";&lt;br /&gt;  trace("Unable to browse for files.");&lt;br /&gt; }&lt;br /&gt; showErrorMessage();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;// after selecting a file&lt;br /&gt;function file_onSelected(evt:Event):void {&lt;br /&gt; trace("selecting");&lt;br /&gt; this.isSelected = true;&lt;br /&gt; //this.fileName_txt.text = "" + this.file.name;&lt;br /&gt; showMessage ('');&lt;br /&gt; showProgressMessage ('');&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;function file_onCancel(evt:Event):void {&lt;br /&gt; trace("cancel");&lt;br /&gt; this.isSelected = false;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;function btnUpload_click(evt:MouseEvent) {&lt;br /&gt; var url:String = null;&lt;br /&gt; trace("upload.click");&lt;br /&gt; disableSubmit(true);&lt;br /&gt; if (this.isSelected) {&lt;br /&gt;  onUploading();&lt;br /&gt; } else {&lt;br /&gt;  showMessage ('You have not choose the file.');&lt;br /&gt;  disableSubmit(false);&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;// begin uploading&lt;br /&gt;function file_onOpen(evt:Event):void {&lt;br /&gt; showMessage("start working...");&lt;br /&gt; trace("open");&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;var sizeLoaded;&lt;br /&gt;var sizeTotal;&lt;br /&gt;// in uploading&lt;br /&gt;function file_onProgress(evt:ProgressEvent):void {&lt;br /&gt; sizeLoaded = evt.bytesLoaded;&lt;br /&gt; sizeTotal = evt.bytesTotal;&lt;br /&gt;&lt;br /&gt; //this.progressBar_mc.width = (sizeLoaded / sizeTotal) * 500;&lt;br /&gt; showProgressMessage(Math.round(sizeLoaded * 100 / sizeTotal) + "%");&lt;br /&gt; trace("on progress");&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;// complete&lt;br /&gt;function file_onComplete(evt:Event):void {&lt;br /&gt; trace("Complete");&lt;br /&gt; disableSubmit (false); &lt;br /&gt; showMessage("Finished uploading.");&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;// After data is received from the server after a &lt;br /&gt;// successful upload. This event is not dispatched &lt;br /&gt;// if data is not returned from the server. &lt;br /&gt;function file_onUploadCompleteData(evt:DataEvent):void {&lt;br /&gt; trace ('upload.complete.data');&lt;br /&gt; var msg:String = String (evt.data);&lt;br /&gt; showMessage (msg); &lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;function file_onErrorSecurity(evt:SecurityErrorEvent) {&lt;br /&gt; trace ("Security Error");&lt;br /&gt; var msg = evt.text;&lt;br /&gt; disableSubmit (false); &lt;br /&gt; showMessage("Security Fault, message: " + msg);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;function file_onErrorHTTP(evt:HTTPStatusEvent):void {&lt;br /&gt; trace("HTTP Error");&lt;br /&gt; var msg = evt.status;&lt;br /&gt; disableSubmit (false); &lt;br /&gt; showMessage("HTTP Fault, HTTP status:" + msg);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;function file_onErrorIO(evt:IOErrorEvent):void {&lt;br /&gt; trace("IO Error");&lt;br /&gt; var msg = evt.text;&lt;br /&gt; disableSubmit (false);&lt;br /&gt; showMessage("Internal IO fault, message: " + msg);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;function onUploading():void&lt;br /&gt;{&lt;br /&gt; var url:String = null;&lt;br /&gt; url = this.uploadServerURL;&lt;br /&gt; &lt;br /&gt; if ( url != null ) {&lt;br /&gt;  this.progressBar_mc.width = 0;&lt;br /&gt;  this.progressBar_mc.visible = true;&lt;br /&gt;  //showMessage('');&lt;br /&gt;  this.uploadRequest = new URLRequest(url);&lt;br /&gt;  this.uploadRequest.method = URLRequestMethod.POST;&lt;br /&gt;  try {&lt;br /&gt;   this.file.upload(this.uploadRequest, 'new_file');&lt;br /&gt;  } catch (error:Error) {&lt;br /&gt;   this.errorMessage = "Internal fault, retry.";&lt;br /&gt;  }&lt;br /&gt;  showErrorMessage();&lt;br /&gt;  return;&lt;br /&gt; } else {&lt;br /&gt;  this.errorMessage = "You need a server to load.";&lt;br /&gt;  showErrorMessage ();&lt;br /&gt;  disableSubmit (false);&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;function disableSubmit(disabled:Boolean):void&lt;br /&gt;{&lt;br /&gt; if ( disabled )&lt;br /&gt; {&lt;br /&gt;  this.browser_btn.enabled = false;&lt;br /&gt;  this.browser_btn.mouseEnabled = false;&lt;br /&gt;  &lt;br /&gt;  this.upload_btn.enabled = false;&lt;br /&gt;  this.upload_btn.mouseEnabled = false;&lt;br /&gt; } else&lt;br /&gt; {&lt;br /&gt;  this.browser_btn.enabled = true;&lt;br /&gt;  this.browser_btn.mouseEnabled = true;&lt;br /&gt;  &lt;br /&gt;  this.upload_btn.enabled = true;&lt;br /&gt;  this.upload_btn.mouseEnabled = true;&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;init();&lt;br /&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/481882308993397518-3296425477615523348?l=freelancerworker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://freelancerworker.blogspot.com/feeds/3296425477615523348/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://freelancerworker.blogspot.com/2009/02/flash-uploader-with-aspnet-20.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/481882308993397518/posts/default/3296425477615523348'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/481882308993397518/posts/default/3296425477615523348'/><link rel='alternate' type='text/html' href='http://freelancerworker.blogspot.com/2009/02/flash-uploader-with-aspnet-20.html' title='Sample Flash File Uploader In AS3'/><author><name>You are welcome!</name><uri>http://www.blogger.com/profile/03813861502555536098</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-481882308993397518.post-1306566291027675205</id><published>2008-12-20T13:44:00.000-08:00</published><updated>2009-03-15T07:26:02.533-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='as3'/><category scheme='http://www.blogger.com/atom/ns#' term='flash'/><title type='text'>Flash AS3: draw and send a picture to save</title><content type='html'>&lt;span style="font-family:trebuchet ms;"&gt;&lt;em&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;em&gt;Sounds good? Yeah, I think so. Just do it in AS3.&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;em&gt;&lt;br /&gt;Preparing before doing this:&lt;br /&gt;&lt;br /&gt;1. You know, flash can make http communication with web server. So it means we can send some data to the web server by "POST".&lt;br /&gt;&lt;br /&gt;2.The web application can receive the data and reconstruct it into a picture, then send it to your friend by mail or else.&lt;br /&gt;&lt;br /&gt;3.The key is, we need make this HTTP REQUEST, POST the picture as binary data. So, it need be converted first into JPEG or else.&lt;br /&gt;&lt;br /&gt;4.The question is : how to get JPEG binary codes?&lt;br /&gt;&lt;br /&gt;That's it, you can find it in Adobe Asserts.&lt;br /&gt;&lt;br /&gt;1. Adobe has a JPEG Encoder Class, you can find it in internet. We can use it. class JPEGEncoder&lt;br /&gt;&lt;br /&gt;2. It's easy to do the next work:&lt;br /&gt;&lt;/em&gt;&lt;/span&gt;&lt;code&gt;&lt;br /&gt;&lt;span style="font-size:85%;color:#009900;"&gt;var pageUrlToReceivePicture;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;color:#009900;"&gt;var bmd:BitmapData = new BitmapData(this.mcPic.width, this.mcPic.height);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;color:#009900;"&gt;bmd.draw(this.mcPic);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;color:#009900;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;color:#009900;"&gt;//.....................&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;color:#009900;"&gt;// most important part&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;color:#009900;"&gt;var jpg:JPEGEncoder = new JPEGEncoder(75);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;color:#009900;"&gt;var _jpgData:ByteArray = jpg.encode(bmd); &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;color:#009900;"&gt;var urlRequest:URLRequest = new URLRequest(pageUrlToReceivePicture); &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;color:#009900;"&gt;urlRequest.data = _jpgData; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;color:#009900;"&gt;urlRequest.contentType ="application/octet-stream" &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;color:#009900;"&gt;urlRequest.method = URLRequestMethod.POST; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;color:#009900;"&gt;//most import part&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;color:#009900;"&gt;//........................&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;color:#009900;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;color:#009900;"&gt;var urlLdr:URLLoader = new URLLoader(); &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;color:#009900;"&gt;urlLdr.load(urlRequest); &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;color:#009900;"&gt;urldr.addEventListener(Event.COMPLETE, onComplete); &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;color:#009900;"&gt;urlLdr.addEventListener(IOErrorEvent.IO_ERROR, onIOError);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="font-family:trebuchet ms;"&gt;3. OK, it's just a example.&lt;br /&gt;&lt;br /&gt;Better example:&lt;br /&gt;&lt;/span&gt;&lt;/em&gt;&lt;a class="postlink" href="http://gotoandlearnforum.com/viewtopic.php?f=35&amp;amp;t=19785"&gt;&lt;em&gt;http://gotoandlearnforum.com/viewtopic.php?f=35&amp;amp;t=19785&lt;/a&gt;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;Blessing you and good luck.&lt;br /&gt;Zero&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/481882308993397518-1306566291027675205?l=freelancerworker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://freelancerworker.blogspot.com/feeds/1306566291027675205/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://freelancerworker.blogspot.com/2008/12/flash-as3-send-picture-to-your-friend.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/481882308993397518/posts/default/1306566291027675205'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/481882308993397518/posts/default/1306566291027675205'/><link rel='alternate' type='text/html' href='http://freelancerworker.blogspot.com/2008/12/flash-as3-send-picture-to-your-friend.html' title='Flash AS3: draw and send a picture to save'/><author><name>You are welcome!</name><uri>http://www.blogger.com/profile/03813861502555536098</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-481882308993397518.post-209070804401112996</id><published>2008-12-17T14:03:00.001-08:00</published><updated>2009-05-24T21:45:53.914-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='flash，as3，programming，preloader'/><category scheme='http://www.blogger.com/atom/ns#' term='internel'/><title type='text'>Flash AS3: a preloader for internal loading.</title><content type='html'>&lt;p&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;em&gt;&lt;/em&gt;&lt;/span&gt; &lt;/p&gt;&lt;p&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;em&gt;Internal Loading with AS3 is rather different from AS2, and it has so many good articles for discussion. I have done three little project about migrate AS2 game to AS3, so I just have little expreience on it.&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;&lt;span style="font-family:Trebuchet MS;"&gt;If we use document class in as3, we need notice:&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;&lt;span style="font-family:Trebuchet MS;"&gt;Dynamically creating instance by "new" and "export" options, you need clear "export in first frame" option in asserts Linkage Property.&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;em&gt;&lt;span style="font-family:Trebuchet MS;"&gt;Then you need put those asserts instance into keyframes ahead, and start your movies by gotoAnd... in the later keyframe. Otherwise, it will be failed to use "new"...(I don't know why, but it did so...)&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;&lt;p&gt;&lt;code&gt;package{&lt;br /&gt;import flash.display.MovieClip;&lt;br /&gt;&lt;code&gt;import flash.display.LoaderInfo; &lt;/code&gt;&lt;br /&gt;&lt;code&gt;import flash.events.*; &lt;/code&gt;&lt;br /&gt;&lt;code&gt;&lt;/code&gt;&lt;br /&gt;&lt;code&gt;public class main extends MovieClip { &lt;/code&gt;&lt;br /&gt;&lt;code&gt;// Progress handler &lt;/code&gt;&lt;br /&gt;&lt;code&gt;private function onLoading(event:ProgressEvent):void &lt;/code&gt;&lt;br /&gt;&lt;code&gt;{ &lt;/code&gt;&lt;br /&gt;&lt;code&gt;var loadpre:int=event.bytesLoaded/event.bytesTotal*100; trace(loadpre); &lt;/code&gt;&lt;br /&gt;&lt;code&gt;} &lt;/code&gt;&lt;br /&gt;&lt;code&gt;&lt;/code&gt;&lt;br /&gt;&lt;code&gt;// completing loading &lt;/code&gt;&lt;br /&gt;&lt;code&gt;private function loadComplete(event:Event):void &lt;/code&gt;&lt;br /&gt;&lt;code&gt;{ &lt;/code&gt;&lt;br /&gt;&lt;code&gt;trace("ok loading"); &lt;/code&gt;&lt;br /&gt;&lt;code&gt;gotoAndStop(3); &lt;/code&gt;&lt;br /&gt;&lt;code&gt;var a = new balloon(); &lt;/code&gt;&lt;br /&gt;&lt;code&gt;addChild(a); &lt;/code&gt;&lt;br /&gt;&lt;code&gt;a.x = 20; &lt;/code&gt;&lt;br /&gt;&lt;code&gt;a.y = 20; &lt;/code&gt;&lt;br /&gt;&lt;code&gt;} &lt;/code&gt;&lt;br /&gt;&lt;code&gt;&lt;/code&gt;&lt;br /&gt;&lt;code&gt;private function onLoadingError(event:IOErrorEvent):void { } &lt;/code&gt;&lt;br /&gt;&lt;code&gt;&lt;/code&gt;&lt;br /&gt;&lt;code&gt;public function main():void &lt;/code&gt;&lt;br /&gt;&lt;code&gt;{ &lt;/code&gt;&lt;br /&gt;&lt;code&gt;this.loaderInfo.addEventListener(ProgressEvent.PROGRESS,onLoading); this.loaderInfo.addEventListener(Event.COMPLETE,loadComplete); this.loaderInfo.addEventListener(IOErrorEvent.IO_ERROR, onLoadingError); trace("main"); &lt;/code&gt;&lt;br /&gt;&lt;code&gt;} &lt;/code&gt;&lt;br /&gt;&lt;code&gt;}&lt;/code&gt;&lt;br /&gt;&lt;code&gt;}&lt;/code&gt;&lt;br /&gt;&lt;/span&gt;&lt;/code&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;em&gt;&lt;strong&gt;&lt;br /&gt;Hope it helps.&lt;/strong&gt;&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;/span&gt;&lt;a href="http://gotoandlearnforum.com/viewtopic.php?f=35&amp;amp;t=22172"&gt;http://gotoandlearnforum.com/viewtopic.php?f=35&amp;amp;t=22172&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Now good luck to you all.&lt;br /&gt;Zero&lt;/em&gt; &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/481882308993397518-209070804401112996?l=freelancerworker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://freelancerworker.blogspot.com/feeds/209070804401112996/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://freelancerworker.blogspot.com/2008/12/flash-actionscript-30-how-to-make.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/481882308993397518/posts/default/209070804401112996'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/481882308993397518/posts/default/209070804401112996'/><link rel='alternate' type='text/html' href='http://freelancerworker.blogspot.com/2008/12/flash-actionscript-30-how-to-make.html' title='Flash AS3: a preloader for internal loading.'/><author><name>You are welcome!</name><uri>http://www.blogger.com/profile/03813861502555536098</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-481882308993397518.post-2585523889402926452</id><published>2008-12-17T13:40:00.000-08:00</published><updated>2009-06-07T07:42:21.929-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='flex'/><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='mysql'/><category scheme='http://www.blogger.com/atom/ns#' term='flash'/><category scheme='http://www.blogger.com/atom/ns#' term='air'/><title type='text'>Free Mind Teamwork</title><content type='html'>&lt;span style="font-family:trebuchet ms;"&gt;&lt;em&gt;Free Mind Teamwork is a team for programming project, we also do agriculture business. I learn English for freedom, and I like to know people all around the world, to exchange our culture and life, if it's lucky, we can be friends.&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;em&gt;&lt;br /&gt;The major projects I have done are:&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;em&gt;flash actionscript 2 or 3 game programming &lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;em&gt;&lt;span style="font-family:Trebuchet MS;"&gt;web application with PHP&amp;&amp;Mysql&lt;/span&gt;&lt;/em&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;em&gt;web application in ASP.NET 2.0 with C# &amp;amp;&amp;amp; ASP.NET ajax 1.0&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;em&gt;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;em&gt;&lt;/em&gt;&lt;/span&gt;&lt;span style="font-family:trebuchet ms;color:#009900;"&gt;&lt;br /&gt;Although it's only one person in this team(me) so far. I think, it will grow up in future. Here is a good place to learn from others and show my works.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/481882308993397518-2585523889402926452?l=freelancerworker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://freelancerworker.blogspot.com/feeds/2585523889402926452/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://freelancerworker.blogspot.com/2008/12/free-mind-team-work.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/481882308993397518/posts/default/2585523889402926452'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/481882308993397518/posts/default/2585523889402926452'/><link rel='alternate' type='text/html' href='http://freelancerworker.blogspot.com/2008/12/free-mind-team-work.html' title='Free Mind Teamwork'/><author><name>You are welcome!</name><uri>http://www.blogger.com/profile/03813861502555536098</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
