零基础小白必知 常见HTML5开发工具有哪些

零基础小白必知 常见HTML5开发工具有哪些,第1张

1. Adobe Dreamweaver CS6

Dreamweaver CS6是世界顶级软件厂商Adobe推出的一套拥有可视化编辑界面,用于制作并编辑网站和移动应用程序的网页设计软件。由于Dreamweaver支持代码、拆分、设计、实时视图等多种方式来创作、编写和修改网页,对于初级人员,你可以无需编写任何代码就能快速创建Web页面。其成熟的代码编辑工具更适用于Web开发高级人员的创作!

2. Adobe Edge

Adobe Edge是一个用HTML5、CSS、Java开发动态互动内容的设计工具。它的一个重要功能是web工具包界面,用于方便确保在不同浏览器中架构的一致性,此外,Adobe Edge还将整合TypeKit这样的字体服务。通过Edge设计的内容可以兼容iOS和Android设备,也可以运行在火狐、Chrome、Safari和IE9等主流浏览器上。

3. DevExtreme

DevExtreme Complete Subion是性能最优的HTML5,CSS和Java移动开发框架,可以直接在Visual Studio集成开发环境,构建iOS,Android,Tizen和Windows Phone 8应用程序。DevExtreme包含 PhoneJS 和 ChartJS 两个原生UI组件,并且提供源代码。目前,DevExtreme支持VS2010/2012/2013集成开发环境,兼容Android 4+、iOS5+、Windows 8、Window Phone 8、Tizen五大移动平台,是Visual Studio开发人员开发跨平台移动产品的首选工具。

4. JetBrains WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript开发工具。被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaS IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

5. Sencha Architect

在开发移动和桌面应用的工具中,Sencha的定位是HTML5可视化应用开发。开发团队可以在一个单一集成的环境中完成应用的设计、开发和部署。开发者还可以开发Sencha Touch2和Ext JS4 Java应用,并实时预览。

6、Initializr

Initializr 是制作 HTML5 网站最好的入门辅助开发工具,你可以使用提供的特色模板快速生成网站,也可以自定义,Initializr 会为你生成代码简洁的可定制的网页模板。

7、HTML5demos

想知道你的浏览器是否支持 HTML5 Canvas 吗?想知道 Safari 是否可以运行简单的 HTML5 聊天客户端吗?HTML5demos 会告诉你每一个HTML5特性在哪些浏览器中支持。

8、HTML5 Tracker

想了解 HTML5的最新动向吗? 使用 HTML5 Tracker 吧,它可以跟踪 HTML5 最新修订信息。

9、HTML5 visual cheat sheet

想要快速超找一个标签或者属性吗?看看这个非常酷的速查手册吧,每个Web开发人员的必备。

10、Switch To HTML5

Switch To HTML5 是一个基础而实用的模板生成工具。如果你开始一个新项目,可以到这里获取免费的 HTML5 网站模板。

11、HTML5 Test

你浏览器准备好迎接 HTML5 革命了吗?HTML5 Test 将告诉你。这个网站会为你当前使用的浏览器生成一份对video、audio、canvas等等特性的支持情况的完整报告。

12、Lime JS

LimeJS 是一个 HTML5 游戏开发框架,用于快速构建运行于触屏设备和桌面浏览器的游戏。非常棒的HTML5开发工具,一定要用用试试。

创建画布

// Create the canvas

var canvas = document.createElement("canvas")

var ctx = canvas.getContext("2d")

canvas.width = 512

canvas.height = 480

document.body.appendChild(canvas)

首先我们需要创建一张画布作为游戏的舞台。这里通过JS代码而不是直接在HTML里写一个<canvas>元素目的是要说明代码创建也是很方便的。有了画布后就可以获得它的上下文来进行绘图了。然后我们还设置了画布大小,最后将其添加到页面上。

准备图片

// 背景图片

var bgReady = false

var bgImage = new Image()

bgImage.onload = function () {

bgReady = true

}

bgImage.src = "images/background.png"

游戏嘛少不了图片的,所以我们先加载一些图片先。简便起见,这里仅创建简单的图片对象,而不是专门写一个类或者Helper来做图片加载。bgReady这个变量用来标识图片是否已经加载完成从而可以放心地使用了,因为如果在图片加载未完成情况下进行绘制是会报错的。

整个游戏中需要用到的三张图片:背景,英雄及怪物我们都用上面的方法来处理。

游戏对象

// 游戏对象

var hero = {

speed: 256, // 每秒移动的像素

x: 0,

y: 0

}

var monster = {

x: 0,

y: 0

}

var monstersCaught = 0

现在定义一些对象将在后面用到。我们的英雄有一个speed属性用来控制他每秒移动多少像素。怪物游戏过程中不会移动,所以只有坐标属性就够了。monstersCaught则用来存储怪物被捉住的次数。

处理用户的输入

// 处理按键

var keysDown = {}

addEventListener("keydown", function (e) {

keysDown[e.keyCode] = true

}, false)

addEventListener("keyup", function (e) {

delete keysDown[e.keyCode]

}, false)

现在开始处理用户的输入(对初次接触游戏开发的前端同学来说,这部分开始可能就需要一些脑力了)。在前端开发中,一般是用户触发了点击事件然后才去执行动画或发起异步请求之类的,但这里我们希望游戏的逻辑能够更加紧凑同时又要及时响应输入。所以我们就把用户的输入先保存下来而不是立即响应。

为此,我们用keysDown这个对象来保存用户按下的键值(keyCode),如果按下的键值在这个对象里,那么我们就做相应处理。

开始一轮游戏

// 当用户抓住一只怪物后开始新一轮游戏

var reset = function () {

hero.x = canvas.width / 2

hero.y = canvas.height / 2

// 将新的怪物随机放置到界面上

monster.x = 32 + (Math.random() * (canvas.width - 64))

monster.y = 32 + (Math.random() * (canvas.height - 64))

}

reset方法用于开始新一轮和游戏,在这个方法里我们将英雄放回画布中心同时将怪物放到一个随机的地方。

更新对象

// 更新游戏对象的属性

var update = function (modifier) {

if (38 in keysDown) { // 用户按的是↑

hero.y -= hero.speed * modifier

}

if (40 in keysDown) { // 用户按的是↓

hero.y += hero.speed * modifier

}

if (37 in keysDown) { // 用户按的是←

hero.x -= hero.speed * modifier

}

if (39 in keysDown) { // 用户按的是→

hero.x += hero.speed * modifier

}

// 英雄与怪物碰到了么?

if (

hero.x <= (monster.x + 32)

&&monster.x <= (hero.x + 32)

&&hero.y <= (monster.y + 32)

&&monster.y <= (hero.y + 32)

) {

++monstersCaught

reset()

}

}

这就是游戏中用于更新画面的update函数,会被规律地重复调用。首先它负责检查用户当前按住的是中方向键,然后将英雄往相应方向移动。

有点费脑力的或许是这个传入的modifier 变量。你可以在main 方法里看到它的来源,但这里还是有必要详细解释一下。它是基于1开始且随时间变化的一个因子。例如1秒过去了,它的值就是1,英雄的速度将会乘以1,也就是每秒移动256像素;如果半秒钟则它的值为0.5,英雄的速度就乘以0.5也就是说这半秒内英雄以正常速度一半的速度移动。理论上说因为这个update 方法被调用的非常快且频繁,所以modifier的值会很小,但有了这一因子后,不管我们的代码跑得快慢,都能够保证英雄的移动速度是恒定的。

现在英雄的移动已经是基于用户的输入了,接下来该检查移动过程中所触发的事件了,也就是英雄与怪物相遇。这就是本游戏的胜利点,monstersCaught +1然后重新开始新一轮。

渲染物体

// 画出所有物体

var render = function () {

if (bgReady) {

ctx.drawImage(bgImage, 0, 0)

}

if (heroReady) {

ctx.drawImage(heroImage, hero.x, hero.y)

}

if (monsterReady) {

ctx.drawImage(monsterImage, monster.x, monster.y)

}

// 计分

ctx.fillStyle = "rgb(250, 250, 250)"

ctx.font = "24px Helvetica"

ctx.textAlign = "left"

ctx.textBaseline = "top"

ctx.fillText("Monsterrs caught: " + monstersCaught, 32, 32)

}

之前的工作都是枯燥的,直到你把所有东西画出来之后。首先当然是把背景图画出来。然后如法炮制将英雄和怪物也画出来。这个过程中的顺序是有讲究的,因为后画的物体会覆盖之前的物体。

这之后我们改变了一下Canvas的绘图上下文的样式并调用fillText来绘制文字,也就是记分板那一部分。本游戏没有其他复杂的动画效果和打斗场面,绘制部分大功告成!

主循环函数

// 游戏主函数

var main = function () {

var now = Date.now()

var delta = now - then

update(delta / 1000)

render()

then = now

// 立即调用主函数

requestAnimationFrame(main)

}

上面的主函数控制了整个游戏的流程。先是拿到当前的时间用来计算时间差(距离上次主函数被调用时过了多少毫秒)。得到modifier后除以1000(也就是1秒中的毫秒数)再传入update函数。最后调用render 函数并且将本次的时间保存下来。

关于游戏中循环更新画面的讨论可参见「Onslaught! Arena Case Study」。

关于循环的进一步解释

// requestAnimationFrame 的浏览器兼容性处理

var w = window

requestAnimationFrame = w.requestAnimationFrame || w.webkitRequestAnimationFrame || w.msRequestAnimationFrame || w.mozRequestAnimationFrame

如果你不是完全理解上面的代码也没关系,我只是觉得拿出来解释一下总是极好的

为了循环地调用main函数,本游戏之前用的是setInterval。但现今已经有了更好的方法那就是requestAnimationFrame。使用新方法就不得不考虑浏览器兼容性。上面的垫片就是出于这样的考虑,它是Paul Irish 博客原版的一个简化版本。

启动游戏!

// 少年,开始游戏吧!

var then = Date.now()

reset()

main()

总算完成了,这是本游戏最后一段代码了。先是设置一个初始的时间变量then用于首先运行main函数使用。然后调用 reset 函数来开始新一轮游戏(如果你还记得的话,这个函数的作用是将英雄放到画面中间同时将怪物放到随机的地方以方便英雄去捉它)。

到此,相信你已经掌握了开发一个简单H5小游戏需要的基本功了。玩玩这个游戏或者下载代码自己研究研究吧 :)

Feel free to repost but keep the link to this page please!

以下就以做一个最简单的方块动画来说明基本用法:

1. 使用方块工具在stage上画一个方块, 顺便将前景色选为蓝色

 2. 我们目标是让方块移动到右下角, 在移动过程中改变它的透明度 和 旋转角度

所以我们先要对这几个参数建立关键帧

右击方块, 在d出菜单中选择 Add Keyframe - Opacity

3. 然后我们在下方的Timeline面板中将初始的透明度修改为20

4. 然后我们将右边的时间浮标拖动到一个随意的时间点, 点击透明度修改框右边的小按钮, 再次创建一个关键帧

5. 创建完第二个关键帧后, 我们再对透明度进行修改, 改为100

此时能够发现在两个时间点的关键帧直接出现了淡黄色填充条, 代表这里已经存在一个变化的过程了, 我们此时可以点击Play按钮试一下

6. 如法炮制, 我们可以再添加一个旋转的动画, 只要右击选择Add Keyframe- Rotate (或者直接在左边修改Rotate值也可以)

注意一定要保证你运行动画的两端时间点都有关键帧, 关键帧通过点击属性修改框右边的菱形按钮添加

7. 此时应该可以运行2个动画了, 按play键试试呗~

接下来我们可以对这个矩形再添加一个简单的事件, 比如鼠标单击时使动画回放

我们需要在右上角的Elements菜单中找到Rectangle, 点击左边的Open Actions添加事件处理程序

8. 选择Click事件

9. 在代码编辑框中选择右边的Play Reverse选项添加回放的功能. (当然你也可以自己编写自己的代码)

10. 编辑完毕后直接关闭即可, 由于在编辑窗口中无法直接响应点击事件, 我们需要保存为HTML文件在浏览器中进行试验

点击左上角File-Save as 保存为HTML文件

11. 我们可以发现它生成了好多JS文件

其中edge_includes文件夹中存放了JQuery库的文件以及Edge的共用JS库文件

其余js文件则是当前页面所需要的js文件

12. 直接用支持HTML5的浏览器打开HTML文件, 就可以看到效果啦~!


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/6237310.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-18
下一篇 2023-03-18

发表评论

登录后才能评论

评论列表(0条)

保存