HOMERSS 2.0RSS comments
sizeSMALLMEDIUMLARGEXTRA LARGE
home
time
27/Sun
07 05 09 22 33
title AS3筆記-純MVC心得
title
類
論
別

人生如戲,戲如人生,要玩遊戲就要有遊戲規則.制定輸贏的基準(要錢,要名,要爽?),而如何贏這個遊戲,就要看怎麼用這些規則玩這個遊戲了~

廢話不多說,OOP(物件導向)也是一堆規則堆成的一種語法,用這些規則可以達到你想要叫電腦做的事, 但並不代表用了規則就做的漂亮.

在OOP規則的世界, 輸贏可以有很多方面, 基本上是如何拼奏這些規則, 達到

1. 讓共同開發的人都能互相了解,分工合作

2. 可以重複使用又易於修改

以上兩樣基準, 由不同的狀況用途, 經過邏輯的推演歸納, 會產生某些特別拼湊的OOP規則,就成了所謂的 Design Pattern了.

Design Pattern 的用意是在解決問題, MVC是眾多 Design Patterns 的一種, 目的在解決的問題就是避免 Model / View 之間偶合的情形.並且利用一些 interface 的寫法讓 開發者之間可以互相了解.

一般flash presentation 網站對Model幾乎只讀取而不改變的情形,所以很自然的就會把 Controller 跟 Model 寫在一起.不過卻會造成 Model 更改不易的情形.

之前在 Flash Coder New York (FCNY) 的 email 討論裡面, 有一堆人提到 MVC 是如何的複雜無用, 其實沒錯, MVC 確實讓人在寫 code 上多了很多程序, 不過這些程序主要也是為了減少 model / view 的耦合現象, 讓開發過後的元件可以重複使用, that’s all AS3 OOP programing about.不然直接寫再 Flash IDE 的 Frame 上面就好, 何必還要寫一堆 as.

之前看了一陣子 PureMVC framework. 覺得好像很複雜, 很多次看一下就放棄了, 這次我選擇不看, 我直接用, 發現其實並不難, 而且讓整個開發變得很清楚明瞭.(但是還是要多寫很多Code…)

以上是 pureMVC 的官方架構示意圖,看起很嚇人,已經到了有 infovis 美感的地步.

詳全文 ReadMore


  • 恩... 1 Stars喔~ 2 Stars好! 3 Stars酷!! 4 Stars哇!!! 5 Stars (3 票, 平均: 5.00 / 5) << 請踴躍投票

    time
    25/Tue
    06 16 09 13 55
    title AS3筆記-Array的異次元空間
    title
    類
    論
    別
    var a:Array = new Array();
    var b:Sprite = new Sprite();
    var c:Sprite = new MovieClip();
    b.name = "myName";
    c.name = "myName2";
    a[b.name]=b;
    a.myName2=c;
    a.push("cool");
    trace("a[0]=",a[0]);
    trace("a.length=",a.length);
    trace("for in loop");
    trace(a.myName,a1);
    for (var i:* in a) {
    	trace(i,"=",a[i]);
    }
    

    array[數字] -> 會進到 array 裡面,並且會count length
    array[字串] -> array.字串 -> 會變成 array 的 property, 像是object 一樣 (public dynamic class Array extends Object), 這樣做並不會 count length


  • 恩... 1 Stars喔~ 2 Stars好! 3 Stars酷!! 4 Stars哇!!! 5 Stars (1 票, 平均: 5.00 / 5) << 請踴躍投票

    time
    20/Tue
    05 12 09 13 21
    title AS3筆記-Polymorphism
    title
    類
    論
    別

    多態 Polymorphism 是OOP物件導向程式三惡霸之一. 懂的人可能還不知道要怎麼運用,不懂的人可以看看這篇專為as3製作網頁而寫的簡易了解版.

    假設今天A君被layoff,要做一個portfolio找工作, 想用 about,  website, contact為簡單明瞭秀三個頁面,

    • about, 裡面是一些自我瞎掰介紹
    • works, 跟別人的合作案跟借來的作品
    • contact, 將要搬家的地址跟快要丟掉的手機電話

    很快的規劃,以最精簡的方式可以有以下幾個 classes 的製作 (如果連這都想不出來,還是趕快準備打包吧!)

    詳全文 ReadMore


  • 恩... 1 Stars喔~ 2 Stars好! 3 Stars酷!! 4 Stars哇!!! 5 Stars (2 票, 平均: 5.00 / 5) << 請踴躍投票

    time
    15/Wed
    04 08 09 13 34
    title AS3筆記-Class Path
    title
    類
    論
    別

    許多人用 flash, 用到現在,可能還是對 class path 的設定不是很了解, 尤其在面對使用 3rd party editor 跟 Flash IDE + FDT 的時候,常常發生觀念不清楚的錯亂情形.

    其實原則很簡單,就是要了解兩邊的規則,讓 Editor 以及 Compiler 能找到的 class path是一樣的,就不會出問題了.

    詳全文 ReadMore


  • 恩... 1 Stars喔~ 2 Stars好! 3 Stars酷!! 4 Stars哇!!! 5 Stars << 請踴躍投票

    time
    13/Tue
    03 24 09 17 47
    title AS3筆記-啟動流程
    title
    類
    論
    別

    相信如果寫程式,都會以能夠共用為目標,這樣不用每次都重寫code, 再寫各式各樣的小tool的時候,不免希望整個team寫法一致,所以寫好的東西大家自然就會使用.

    經過一些經驗以後,發現幾乎所有的工具再使用的時候,都會具有下列的幾個動作

    1. new -> 2. setting (必要參數,內定參數) -> 3. init -> 4.interact(開始使用互動)

    ex:

    //1.new
    var ss : Slideshow = new Slideshow();
    //2.setting
    ss.imageFileArray = imgAry;
    ss.autoPlay=true;
    ss.transitionStyle="fadeIn";
    //3.init
    ss.init();
    //4.interact
    ss.showSlide(4);
    

    對於slideshow來講,imageFileArray應該是必備的,必須強迫使用者輸入,所以我覺得可以放在constructor強迫人填:
    1. new (必要參數) -> 2. setting (內定參數) -> 3. init -> 4.interact(開始使用互動)

    //1.new
    var ss : Slideshow = new Slideshow(imgAry);
    //2.setting
    ss.autoPlay=true;
    ss.transitionStyle="fadeIn";
    //3.init
    ss.init();
    //4.interact
    ss.showSlide(4);
    

    補充: 關於 必要參數 / 內定參數是否放在constructor裡面?

    function裡面的paramater是有前後之分的,通常必須設定的要放前面,有內建值的放後面.這樣的順序如果要跳著設定會變的比較麻煩.

    ex:
    public function Slideshow(fileAry:Array, autoplay:Boolean=true, interval:Number=5, startfrom:Number =null)
    像是這樣的constructor,如果要只改變 interval的話要這樣寫
    var ss:Slideshow = new Slideshow(myArray,true,10);
    你要多打個 true,而且還要記得每一個裡面代表的是什麼,別人打開code的時候也比較容易看不懂. 所以我決定只把必要參數放在constructor.


  • 恩... 1 Stars喔~ 2 Stars好! 3 Stars酷!! 4 Stars哇!!! 5 Stars << 請踴躍投票