搜索
首页web前端H5教程HTML5开发中使用MVC模式

HTML5开发中使用MVC模式

Mar 01, 2017 pm 03:32 PM

公司上周举办了一次编程马拉松,时间为两天,我当然用了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)!



声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
H5和HTML5:网络开发中常用的术语H5和HTML5:网络开发中常用的术语Apr 13, 2025 am 12:01 AM

H5与HTML5指的是同一个东西,即HTML5。HTML5是HTML的第五个版本,带来了语义化标签、多媒体支持、画布与图形、离线存储与本地存储等新功能,提升了网页的表现力和交互性。

H5指的是什么?探索上下文H5指的是什么?探索上下文Apr 12, 2025 am 12:03 AM

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

H5:工具,框架和最佳实践H5:工具,框架和最佳实践Apr 11, 2025 am 12:11 AM

H5开发需要掌握的工具和框架包括Vue.js、React和Webpack。1.Vue.js适用于构建用户界面,支持组件化开发。2.React通过虚拟DOM优化页面渲染,适合复杂应用。3.Webpack用于模块打包,优化资源加载。

HTML5的遗产:当前了解H5HTML5的遗产:当前了解H5Apr 10, 2025 am 09:28 AM

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

H5代码:可访问性和语义HTMLH5代码:可访问性和语义HTMLApr 09, 2025 am 12:05 AM

H5通过语义化元素和ARIA属性提升网页的可访问性和SEO效果。1.使用、、等元素组织内容结构,提高SEO。2.ARIA属性如aria-label增强可访问性,辅助技术用户可顺利使用网页。

H5与HTML5相同吗?H5与HTML5相同吗?Apr 08, 2025 am 12:16 AM

"h5"和"HTML5"在大多数情况下是相同的,但它们在某些特定场景下可能有不同的含义。1."HTML5"是W3C定义的标准,包含新标签和API。2."h5"通常是HTML5的简称,但在移动开发中可能指基于HTML5的框架。理解这些区别有助于在项目中准确使用这些术语。

H5的功能是什么?H5的功能是什么?Apr 07, 2025 am 12:10 AM

H5,即HTML5,是HTML的第五个版本,它为开发者提供了更强大的工具集,使得创建复杂的网页应用变得更加简单。H5的核心功能包括:1)元素允许在网页上绘制图形和动画;2)语义化标签如、等,使网页结构清晰,利于SEO优化;3)新API如GeolocationAPI,支持基于位置的服务;4)跨浏览器兼容性需要通过兼容性测试和Polyfill库来确保。

h5链接怎么做h5链接怎么做Apr 06, 2025 pm 12:39 PM

如何创建 H5 链接?确定链接目标:获取 H5 页面或应用程序的 URL。创建 HTML 锚点:使用 <a> 标记创建锚点并指定链接目标URL。设置链接属性(可选):根据需要设置 target、title 和 onclick 属性。添加到网页:将 HTML 锚点代码添加到希望链接出现的网页中。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
4 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

螳螂BT

螳螂BT

Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

MinGW - 适用于 Windows 的极简 GNU

MinGW - 适用于 Windows 的极简 GNU

这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )专业的PHP集成开发工具

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用