Pay for Hesitation: trick

Pages

顯示具有 trick 標籤的文章。 顯示所有文章
顯示具有 trick 標籤的文章。 顯示所有文章

2011年2月14日 星期一

A rest for your SWF

試過了, 可以work.
好用的trick!


http://imagineric.ericd.net/?p=353
Well, it works for a SWF, but if you’re deploying a projector it doesn’t want to work correctly. It loads nothing in the projector’s viewport. It works if you launch the SWF as a standalone or in a browser.

2011年1月19日 星期三

Uniquely random number array generation

http://ticore.blogspot.com/2011/01/as3-unique-random-number.html

三招都很cool!
尤其第三招用了Array.RETURNINDEXEDARRAY會回傳不重覆index array的特性.
超酷!!


Array.RETURNINDEXEDARRAY的用法可參考下面這篇~
http://blogs.adobe.com/actionscriptdocs/tag/returnindexedarray



Ticore大大還用Array.RETURNINDEXEDARRAY
實做簡潔的連續整數(0-n)array
http://ticore.blogspot.com/2011/01/as3-fast-way-generate-integer-sequence.html

Trick on iterating array concatenation

nice trick!!
http://blog.eddie.com.tw/2011/01/18/faster-array-concatenation-in-as3/

array1.push.apply( array1, array2);


2010年11月15日 星期一

用Movie Clip 實作Button時, mouse event造成不斷閃爍的問題?

往往為了要讓button的mouse event 有更多層次的特效時,
artist 會選擇用movieclip的製作方式來取代simple button.

MovieClip往往有多層元件.
當滑鼠移至母元件與子元件差集的部分, 
常常會因為母元件的mouse over event與子元件的mouse out event 發生循環loop,
使得movie clip 產生閃爍, 解決的方法就是僅對母元件註冊mouse event,
並將母元件的mouseChildren 設為false.


2008年3月21日 星期五

最佳化PHP程式碼

回到家時間比較沒辦法自己掌控 XD (不過我還是七點半就起床囉!!)
那個data.xml你看看是不是這一個: http://140.112.31.185/dl/data.xml

文章出處是這邊:
PHP 效能調校:最佳化你的php程式碼的訣竅

我看了幾項比較可能遇到的
  • 如果 method 可以是 static,那就宣告它為 static。速度的改善可以是4倍。
  • echo 比 print 快多了。
  • 使用 echo 的多個參數用法,不要用 string 的串接。(也就是用逗號,不要用句號)
  • 在迴圈之前設定你的 for 迴圈的極大值,不要在迴圈中。
  • Unset 你的變數來釋放記憶體,尤其是大型陣列。
  • 在 includes 和 requires 中使用完整的路徑,會花費較少的時間在解析 OS 路徑。
  • 當 script 已經開始時,如果如果你需要找出時間(time),$_SERVER['REQUEST_TIME'] 要比time()好的多。
  • 用 strncasecmp、strpbrk 和 stripos 來取代 regex。(有時候多個幾行反而比較快)
  • str_replace 比 preg_replace 快,不過 strstr 又比 str_replace 快四倍。
  • 用 switch 陳述式會比多個 if ... else if 好的多。
  • 用@來做錯誤抑制非常慢。
  • 打開 apache的 mod_deflate。
  • 當你完成資料庫相關操作時,關閉你的資料庫連結。
  • 錯誤訊息非常昂貴。
  • 在 for 迴圈中不要使用函式,例如:for($x=0; $x <>
  • 一般而言 for 會比 foreach 快,但當迴圈裡的元素(element)大時,有時 foreach 會稍快一些。
  • 遞增一個 global 變數比 local 變數慢二倍。
  • 遞增一個 object property(e.g., $this->prop++)會比 local 變數慢上三倍。
  • 遞增一個未定義的 local 變數會比一個預先初始化的變數慢上 9-10 倍。
  • 以單引號括住字串會比以雙引號(")括住字串快一丁點,因為 PHP 會對 "..." 查找變數,而不會對 '...'。當然囉,只當你在字串中沒有變數時,才可以這麼做。(少寫含糊不清的雙引號(""),是字串就用單引號)
  • 儘量減少型別轉換和判斷。
  • 使用 PHP 快取的產品。(jiing:如 xcache, php_apc)
  • 快取多多益善。用 memcached。
  • 可以用 isset() 來取代 stelne($str)。
    • if (strlen($foo) <>
    • if (!isset($foo{5})) { echo "Foo is too short"; }
  • 在 PHP 裡,++$i 比 $i++ 快一點。
  • 不需要每件事都 OOP,通常它是過度負載(overhead),每個 method 和物件呼叫花費很多的記憶體。
  • 不要實作每個資料結構成 class,array 也很有用。
  • 不要過度切分 method,思考哪些程式碼是你真的將會重覆使用的。
  • 如果有一堆字串結合後不斷輸出的動作,可以考慮使用 ob_start() 相關的函式。

2008年3月17日 星期一

Deep Copy

很酷的一種深層拷貝方式! 這樣做的感覺好像是把物件先serialize成一個bytes array, 再把它deserialize回來, 就達到deep copy的結果了!

function clone(source:Object):* {
var buffer:ByteArray = new ByteArray();
buffer.writeObject(source);
buffer.position = 0;
var result:Object = buffer.readObject();
return result;
}