Re: [問題] 由外部資料夾引入程式?
※ 引述《jing007 (嗚~合購版讓我變肥肥肥豬)》之銘言:
: 親愛的同學寄給我一個mp3的flash檔案
: 但解開後只有場景有程式 此程式中其他地方完全找不到任何程式
: 後來想想奇怪怎解開後還一堆資料夾 就查看了一下
: 一堆.as的檔案....這好像是一堆用宣告物件的方式去寫裡面的程式
: 例如:某段.as檔內的某段類別宣告如下:
: class com.jeroenwijering.players.CallbackView extends AbstractView
: {
: ...一堆變數宣告...
: }
: 而CallbackView及AbstractView 又是另一個.as的檔案名稱
: 於是我去查了一下CallbackView及AbstractView
: 但是…裡面是空的 空的那幹麼去宣告又繼承的啊?=_______=||| 還是別有用意?
: 我是想請教這種寫法是什麼?是比較針對程式設計師來寫的寫法嗎?
: 大約要如何去對應到程式是如何跑的?
: 真得完全都是程式設計的寫了…有沒有相關書籍可以參考,謝謝~
我猜你的這個mp3 player是從這裡下載的 :)
http://www.jeroenwijering.com/upload/flash_mp3_player.zip
在這裡extends的確是"繼承"沒錯
大概瞄了一下,這個AP應該是採用design pattern裡的MVC pattern來設計的
(不過也有人覺得MVC不算一種pattern,MVC = Model-View-Controller)
這種程式的解讀其實還是有門道的
基本上對OOP要有一定程度的了解會比較看得懂
當然如果知道design pattern是在幹嘛的話,會更快上手 :)
大概可以從mp3player.fla的從這行開始:
var mpl = new com.jeroenwijering.players.MediaPlayer(this.player);
所以下一個應該是往com/jeroenwijering/players/,找MediaPlayer.as
打開MediaPlayer.as
class com.jeroenwijering.players.MediaPlayer extends AbstractPlayer
MediaPlayer類別繼承自AbstractPlayer類別
所以除了看看底下的程式碼之外,再往上找父類別AbstractPlayer.as
為什麼要找父類別?
public function MediaPlayer(tgt:MovieClip,fil:String) {
super(tgt,fil);
};
它的建構子呼叫了它的父類別的建構子..
看一下AbstractPlayer.as
import com.jeroenwijering.players.*;
import com.jeroenwijering.feeds.*;
class com.jeroenwijering.players.AbstractPlayer implements FeedListener
AbstractPlayer實作了FeedListener這個interface(注意,不是extends)
這個FeedListener.as是放在com/jeroenwijering/feeds裡
interface com.jeroenwijering.feeds.FeedListener {
function onFeedUpdate();
}
意思就是說implements自這個interface的類別,需要實作onFeedUpdate()這個方法
以此類推.. :)
至於什麼時候用extends,什麼時候用implements? 這兩個有什麼不同?
又是囉嗦的一長篇了 :)
對這個有興趣的,有幾本書可以推薦給大家
1. 深入淺出設計模式 (Head First Design Patterns)
http://tinyurl.com/2e4a68
原文書已是口碑很好的書,中文翻譯則是由當初紅極一時賣雞排的蔡老大執筆的
我覺得寫得很不錯
2. Object-Oriented ActionScript For Flash 8
http://www.friendsofed.com/book.html?isbn=1590596196
好像沒有中文版,這是我最近坐捷運時候常會拿在手上翻的書
翻著翻著就睡著了,催眠效果一流 :)
3. Advanced ActionScript 3 with Design Patterns
http://tinyurl.com/ysudt7
這本天瓏有賣,但好薄一本,賣一千多,買不下手..:)
供你參考 :)
--
小的不是科班學生,這些都是自己亂看書學來的
有錯請指正囉 :)
--
http://www.eddie.com.tw/blog/
http://www.eddie.com.tw/
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.135.172.127
推
04/26 11:13, , 1F
04/26 11:13, 1F
討論串 (同標題文章)
Flash 近期熱門文章
PTT數位生活區 即時熱門文章