公司上週舉辦了一次程式設計馬拉松,時間為兩天,我當然用了lufylegend.js,為了讓程式碼看起來更整潔有些,嘗試著用javascript寫了一個小的MVC框架,並開發了一個簡單的demo,由於時間太短,遊戲只完成了預計的一小部分。
本次開發的遊戲截圖如下。
測試連線如下
http://lufylegend.com/demo/mvcSample/
很多人一定會說,js開發根本不需要什麼MVC,用了就是給自己找麻煩。在這裡,我不去討論需不需要的問題,只是我個人感覺這次的開發使用了MVC模式之後,代碼各個模組確實一目了然,維護和擴展都相對方便了許多,很適合大中型的開發,當然對於小程式而言,也確實沒有使用MVC的必要。現在我將這個框架公開,並在這裡簡單說明一下它的用法,這個框架是我在很短的時間內完成的,所以一定存在很多不完善的地方,如果你有更好的想法,也歡迎提出來一起討論。
一,命名
沿用我在lufylegend.js引擎中的命名方式,我給這個框架命名為LMvc,框架已被加入到lufylegend .js的下載套件。
二,使用前提
本框架是我在lufylegend.js引擎的基礎上完成的,所以使用它的話,你需要引入lufylegend.js引擎。
lufylegend.js引擎官網
http://lufylegend.com/lufylegend
lufylegend.js引擎線上API文件連結
http://lufylegend. com/lufylegend/api
三,特點
動態載入文件,你可能會把所有JS文件寫到了一起,但是工程很大的時候,你的JS檔案也會很大,會影響頁面的顯示速度,LMvc不但可以動態載入圖片,還可以動態載入JS,一個頁面,你每次只需要載入與它相關的文件即可。
四,使用方法
先設定引擎中各路徑LMvc.JS_PATH,LMvc.IMG_PATH,LMvc.MVC_PATH,LMvc.API_PATH,LMvc.SOUND_PATH。
如果需要提前讀取一些圖片的話,需要將讀取的資料賦值給LMvc.datalist,後面使用LMvc框架讀取圖片的時候,會自動對LMvc.datalist進行監測,重複的圖片會不再次讀取。
最後,呼叫LMvc.init();就可以進入IndexController了。
每一個***Controller,***Model,***View是一個群組,使用之前必須先讀取,使用控制器的loadMvc函數,可以讀取一組MVC。
一組MVC中可以互調,在控制器Controller中,可以使用 控制器.model 來呼叫它的模型,使用 控制器.view 來呼叫它的視圖。在模型Model中,可以使用 模型.controller 來呼叫它的控制器,使用 模型.view 來呼叫它的視圖。在視圖View中,可以使用 模型.controller 來呼叫它的控制器,使用 模型.model 來呼叫它的模型。
1,控制器Controller
簡而言之,一個控制器就是一個類別檔案。控制器必須放到Controllers資料夾內,控制器的名字以Controller結尾。
在控制器中,可以使用 this.model 來呼叫它的模型,使用 this.view 來呼叫它的視圖。
控制器中的函數
construct() | #控制器初始化結束後會直接呼叫此函數,如果有想要在控制器初期化結束後執行的程式碼,可以寫在construct函數內,控制器的construct函數,在模型的construct函數運作之後執行。 |
loadMvc(name,callback,lastClass) | 讀取一組MVC,name是控制器的名稱中移除Controller的部分;callback是回呼函數,當MVC的三個檔案讀取完之後,會自動呼叫此函數;lastClass需要設定為目前物件this。 |
loadMvc使用範例:
function IndexController(){ base(this,MyController,[]); } IndexController.prototype.construct=function(){ var self = this; self.loadMvc("Logo",self.logoLoad); }; IndexController.prototype.logoLoad=function(){ var self = this; var logo = new LogoController(); self.view.addChild(logo.view); };
load : 控制器中的load物件用來讀取各種文件,使用方法如下
this.load.model(names,callback) | 讀取一個或多個模型。 |
this.load.view(names,callback) | 讀取一個或多個檢視。 |
this.load.library(names,callback) | #讀取一個或多個外部類別庫。 |
this.load.helper(names,callback) | #讀取一個或多個輔助函數檔。 |
this.load.image(loadData,callback) | #讀取多張圖片。 |
load.model和load.view一般是不用的,但是在一个控制器中要想使用另一组的模型和视图的时候,就需要个别读取了。
load.library的使用案例
function GameController(){ base(this,MyController,[]); } GameController.prototype.construct=function(){ var self = this; self.load.library(["Character","AttackCharacter","Face","Bar","effects/Effect02", "effects/Qinglong","effects/Baihu","BitmapSprite","CoolingTime"],self.libraryLoadOver); }; GameController.prototype.libraryLoadOver=function(){ var self = this; var chara = new Character(); self.view.addChild(chara);
load.helper的使用案例
function GameController(){ base(this,MyController,[]); } GameController.prototype.construct=function(){ var self = this; self.load.helper(["Talk","UI"],self.helperloadOver); }; GameController.prototype.helperloadOver=function(){ var self = this; Talk("对话测试"); };
load.image的使用案例
function GameController(){ base(this,MyController,[]); } GameController.prototype.construct=function(){ var self = this; var list = self.model.getCommonImages(); self.load.image(list,self.loadImageOver); }; GameController.prototype.loadImageOver=function(){ var self = this; //读取完图片后,可以通过LMvc.datalist获取 };
2,模型Model
模型是专门用来和数据打交道的,数据的存储等工作需要写到模型内。模型必须放到Models文件夹内,模型的名字以Model结尾。
在模型中,可以使用 this.controller 来调用它的控制器,使用 this.view 来调用它的视图。
3,视图View
视图是一个LSprite的子对象。视图必须放到Views文件夹内,视图的名字以View结尾。
在模型中,可以使用 this.controller 来调用它的控制器,使用 this.model 来调用它的模型。
4,辅助函数
在控制器中可以通过this.load.helper来读取一个辅助函数文件。辅助函数文件必须放到Helpers文件夹内。
5,类库
在控制器中可以通过this.load.library来读取一个类库。类库必须放到Libraris文件夹内,类库的名字与控制器,模型和视图的名字不同,它的名字就是类库的名字。
如果想要了解更详细的使用方法,大家可以下载lufylegend.js引擎,查看引擎包中的mvcSample这个具体的开发实例。
以上就是HTML5开发中使用MVC模式 的内容,更多相关内容请关注PHP中文网(www.php.cn)!

H5與HTML5指的是同一個東西,即HTML5。 HTML5是HTML的第五個版本,帶來了語義化標籤、多媒體支持、畫布與圖形、離線存儲與本地存儲等新功能,提升了網頁的表現力和交互性。

H5referstoHTML5,apivotaltechnologyinwebdevelopment.1)HTML5introducesnewelementsandAPIsforrich,dynamicwebapplications.2)Itsupportsmultimediawithoutplugins,enhancinguserexperienceacrossdevices.3)SemanticelementsimprovecontentstructureandSEO.4)H5'srespo

H5開發需要掌握的工具和框架包括Vue.js、React和Webpack。 1.Vue.js適用於構建用戶界面,支持組件化開發。 2.React通過虛擬DOM優化頁面渲染,適合複雜應用。 3.Webpack用於模塊打包,優化資源加載。

HTML5hassignificantlytransformedwebdevelopmentbyintroducingsemanticelements,enhancingmultimediasupport,andimprovingperformance.1)ItmadewebsitesmoreaccessibleandSEO-friendlywithsemanticelementslike,,and.2)HTML5introducednativeandtags,eliminatingthenee

H5通過語義化元素和ARIA屬性提升網頁的可訪問性和SEO效果。 1.使用、、等元素組織內容結構,提高SEO。 2.ARIA屬性如aria-label增強可訪問性,輔助技術用戶可順利使用網頁。

"h5"和"HTML5"在大多數情況下是相同的,但它們在某些特定場景下可能有不同的含義。 1."HTML5"是W3C定義的標準,包含新標籤和API。 2."h5"通常是HTML5的簡稱,但在移動開發中可能指基於HTML5的框架。理解這些區別有助於在項目中準確使用這些術語。

H5,即HTML5,是HTML的第五個版本,它為開發者提供了更強大的工具集,使得創建複雜的網頁應用變得更加簡單。 H5的核心功能包括:1)元素允許在網頁上繪製圖形和動畫;2)語義化標籤如、等,使網頁結構清晰,利於SEO優化;3)新API如GeolocationAPI,支持基於位置的服務;4)跨瀏覽器兼容性需要通過兼容性測試和Polyfill庫來確保。

如何創建 H5 鏈接?確定鏈接目標:獲取 H5 頁面或應用程序的 URL。創建 HTML 錨點:使用 <a> 標記創建錨點並指定鏈接目標URL。設置鏈接屬性(可選):根據需要設置 target、title 和 onclick 屬性。添加到網頁:將 HTML 錨點代碼添加到希望鏈接出現的網頁中。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

Atom編輯器mac版下載
最受歡迎的的開源編輯器

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

SublimeText3漢化版
中文版,非常好用

WebStorm Mac版
好用的JavaScript開發工具

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器