KineticJS教程(1-2)
1.基本结构
KineticJS首先是要绑定到HTML页面上的一个DOM容器元素上,比如最常用的<div>标签。KineticJS在此容器中创建一个称之为舞台(stage)的结构,这个舞台由一个不可见的后台层和一个不可见的缓冲层组成,提供了高性能的路径和像素检测能力。舞台上再包含若干(至少一层)用户层(layer),每个层上又包含有若干canvas元素,比如各种图形、图像、元素组(组可以包含其他的图形和其他的组)等。用户还可以给这些层上的图形、元素组、层本身以及舞台本身添加事件监听方法,以响应鼠标、键盘等事件。浏览器最终显示的就是这些用户层的叠加效果。
2.第一个画面
现在我们开始用Kinetic制作我们的第一个画面。
Kinetic绘图的基本的流程可以如下图所示:
首先是创建一个HTML5页面,在<head>里添加对Kinetic库的引用:
<script src=“./kinetic.js”></script>
在<body>中添加一个用于绑定到Kinetic用于创建舞台的容器,比如说可以是个<div>:
<div id=“container”></div>
我们的Kinetic图像就将在这个容器中完成绘制。
在本例中,我们打算创建一个600×400的舞台,并在中心位置画一个红色矩形框。
同样是在<head>中添加脚本:
<script>
//在页面加载时进行绘图
window.onload = function() {
//创建Kinetic舞台,绑定我们添加的<div>容器
var stage = new Kinetic.Stage({
container : “container”, //<div>的id
width : 600, //创建的舞台宽度
height : 400 //创建的舞台高度
});
//创建Kinetic用户层
var layer = new Kinetic.Layer();
//创建一个Kinetic矩形对象
var rect = new Kinetic.Rect({
x : 200, //矩形左上角x坐标
y : 150, //矩形左上角y坐标
width : 200, //矩形的宽度
height : 100, //矩形的高度
fill : “red”, //矩形的填充色
stroke : “black”, //矩形边缘线的颜色
strokeWidth : 4 //矩形边缘线的宽度
});
//向用户层中添加上面的矩形
layer.add(rect);
//将上面的用户层添加到舞台上
stage.add(layer);
stage.draw();
};
</script>
用浏览器打开页面就能看到如下的图像了:
KineticJS教程(1-2)的更多相关文章
- KineticJS教程(12)
KineticJS教程(12) 作者: ysm 12.舞台 12.1.舞台的大小 舞台创建后还可以用舞台对象的setSize(width, height)方法来设置舞台的宽度与高度. <scr ...
- KineticJS教程(11)
KineticJS教程(11) 作者: ysm 11.对象的上下关系 11.1.层的上下关系 Kinetic的层是按照添加到舞台的次序,由下向上排列,上层遮盖下层的图形.每个层各自有一个ZIndex编 ...
- KineticJS教程(10)
KineticJS教程(10) 作者: ysm 10.在容器之间移动图形对象 Kinetic支持通过图形对象的moveTo(container)方法把图形对象从一个容器移动到另一个容器里,这个容器指 ...
- KineticJS教程(9)
KineticJS教程(9) 作者: ysm 9.选择器 Kinetic在舞台.层和组对象上都提供了get方法,用于返回这三者中包含的对象. 9.1.根据ID获取对象 要用id获取对象,首先要给对象 ...
- KineticJS教程(8)
KineticJS教程(8) 作者: ysm 8.动画 动画就是一帧帧的画面按照时间间隔显示出来,Kinetic给我们提供了一个舞台对象的onFrame方法,用这个方法可以绑定一个动画方法,我们要显 ...
- KineticJS教程(7)
KineticJS教程(7) 作者: ysm 7.图形变换 7.1.线性变化 Kinetic提供了一个图形对象的transitionTo(config)方法实现图形的线性变换,也就是从原始的状态线性变 ...
- KineticJS教程(6)
KineticJS教程(6) 作者: ysm 6.拖拽 6.1.拖拽功能 要实现Kinetic对象的拖拽功能很简单,只需要将图形对象的draggable属性设为true就可以了. <script ...
- KineticJS教程(5)
KineticJS教程(5) 作者: ysm 5.事件响应 5.1.图形的事件响应 图形对象对事件的响应处理可以使用 on() 方法绑定事件类型和相应方法. On() 方法需要一个事件类型参数和相应 ...
- KineticJS教程(4)
KineticJS教程(4) 作者: ysm 4.图形样式 4.1.填充 Kinetic中图形的填充属性可以在构造方法中的config参数中的fill属性进行设定,也可以用图形对象的setFill方 ...
- KineticJS教程(3)
KineticJS教程(3) 作者: ysm 3.图形对象 3.1.Shape Kinetic提供了一个Shape对象用于在层上绘制图形,我们可以通过Kinetic.Shape()构造方法返回一个S ...
随机推荐
- BZOJ 2242 计算器
Description 你被要求设计一个计算器完成以下三项任务: \(1.\)给定\(y,z,p\),计算\(y^{z}\;mod\;P\)的值: \(2.\)给定\(y,z,p\),计算满足\(xy ...
- nodejs and db
http://blog.nosqlfan.com/tags/nodejs http://www.cnblogs.com/windwithlife/archive/2013/02/25/2923235. ...
- Unity3d 物理 Rigidbody预防穿插
Unity3d 物理 Rigidbody预防穿插 @广州小龙 Unity的物理引擎采用的是Physx引擎,里面的组件是Rigidbody!这个可以模拟物理效果! Rigidbody,这个是可以进行穿插 ...
- NSUserDefaults(数据存储)
NSUserDefaults(数据存储) NSUserDefaults适合存储轻量级的本地数据,比如要保存一个登陆界面的数据,用户名.密码之类的,个人觉得使用NSUserDefaults是首选.下 ...
- Delphi中代替WebBrowser控件的第三方控件
这几天,接触到在delphi中内嵌网页,用delphi7自带的TWebBrowser控件,显示的内容与本机IE8显示的不一样,但是跟装IE8之前的IE6显示一个效果.现在赶脚是下面两个原因中的一个: ...
- UC全屏
UC浏览器U3内核扩展接口定义
- 【转】微信Android SDK示例代码及运行方法
原文网址:http://blog.csdn.net/icyfox_bupt/article/details/23742217 最近在研究微信SDK,无奈网上好使的教程太少,对于程序员来说最好的东西,一 ...
- Linux学习笔记22——线程属性(转)
本文来自博客园:http://www.cnblogs.com/yc_sunniwell/archive/2010/06/24/1764204.html 一.线程属性线程具有属性,用pthread_at ...
- GPUImage实现过程
GPUImage就是一个函数的类库,用于对图片实现滤镜的效果. 下面是实现一个最简单的GPUImage的程序和讲解: 首先新建一个项目,导入GPUImage类库(导入过程在我的另一个博客里面有写). ...
- 《Linear Algebra and Its Applications》-chaper3-行列式-克拉默法则
计算线性方程组唯一解的克拉默法则: