KineticJS教程(12)
KineticJS教程(12)
12.舞台
12.1.舞台的大小
舞台创建后还可以用舞台对象的setSize(width, height)方法来设置舞台的宽度与高度。
<script>
stage.setSize(300, 100);
</script>
12.2.舞台的缩放
舞台创建后还可以用舞台对象的setScale()方法来对舞台进行缩放。setScale方法可以接受一个参数,也可以接受两个参数,一个参数是指的横向与纵向均以相同比例缩放,两个参数则是分别设定横向与纵向的缩放比例。参数是不小于0的浮点数,表示缩放的比例,小于1表示缩小,大于1表示放大。另外,缩放是以舞台的左上角为基点的。
<script>
// 横纵方向等比例缩放
stage.setScale(scale);
// 分别制定横纵方向上的缩放比例
stage.setScale(scaleX, scaleY);
</script>
12.3.获取数据URL
Kinetic为舞台对象提供了一个toDataURL方法,可以让用户获得舞台的数据URL信息。toDataURL接受一个方法对象,这个方法至少接受一个参数dataURL保存的既是数据URL。除了这个dataURL参数外,还接受两个参数,一个是mimeType,保存的是数据URL指向数据的mime文件格式,另一个参数是quality,是一个0到1的浮点数,保存的是数据的质量。
用户就可以在这个方法里对数据URL进行处理了。
<script>
stage.toDataURL(function(dataUrl, mimeType, quality){
// 在这里对dataUrl、 mimeType、 quality 信息进行处理
});
</script>
12.4.将舞台保存成JSON数据
将舞台数据保存成JSON数据只需要执行舞台对象的toJSON方法即可。
<script>
var json = stage.toJSON();
</script>
12.5.把JSON数据加载回舞台
将舞台数据保存成JSON数据只需要执行舞台对象的load方法即可。
<script>
// 创建舞台对象
var stage = new Kinetic.Stage({
container: ‘container’,
width: 600,
height: 400
});
// 加载舞台
stage.load(json);
</script>
这个地方要注意,对于事件处理和图像,是不能被序列化成JSON的,需要在加载JSON数据后在加载图像并设定这些事件处理方法。
KineticJS教程(12)的更多相关文章
- KineticJS教程(1-2)
1.基本结构 KineticJS首先是要绑定到HTML页面上的一个DOM容器元素上,比如最常用的<div>标签.KineticJS在此容器中创建一个称之为舞台(stage)的结构,这个舞台 ...
- NODE-WEBKIT教程(12)全屏
node-webkit教程(12)全屏 文/玄魂 目录 node-webkit教程(12)全屏 前言 12.1 和全屏有关的三个api Window.enterFullscreen() Window ...
- 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() 方法需要一个事件类型参数和相应 ...
随机推荐
- 【BZOJ 2806】 2806: [Ctsc2012]Cheat (SAM+二分+DP+单调队列)
2806: [Ctsc2012]Cheat Time Limit: 20 Sec Memory Limit: 256 MBSubmit: 1262 Solved: 643 Description ...
- CodeForces - 1016D Vasya And The Matrix
题面在这里! 很明显二进制每一位都是无关的,所以可以先把原问题简化:给矩阵中的每个位置填入0/1,使得特定行/列有奇数个1,其他行/列有偶数个1. 一个比较好想的方法是对行和列 列出 n+m 个异或方 ...
- PHP_EOL 换行符
换行符unix系列用 \nwindows系列用 \r\nmac用 \rPHP中可以用PHP_EOL来替代,以提高代码的源代码级可移植性 如: <?php echoPHP_EOL; ...
- JSP -- include指令与include动作的区别
JSP -- include指令与include动作的区别 (1)格式的区别: include指令:<%@include file = "文件名"%> include动 ...
- Scala入门:从HelloWorld开始【源码及编译】
最近在学习Scala语言,虽然还没有完全学通, 但是隐约可以体会到Scala的简洁和强大. 它既能让程序员使用函数式编程, 也提供了全面的面向对象编程. 在刚刚开始读<Scala编程>的时 ...
- 使用Spring配置shiro时,自定义Realm中属性无法使用注解注入解决办法
先来看问题 纠结了几个小时终于找到了问题所在,因为shiro的realm属于Filter,简单说就是初始化realm时,spring还未加载相关业务Bean,那么解决办法就是将springmvc ...
- Upgrading Directly from MySQL 5.0 to 5.7 using an ‘In Place’ Upgrade
http://mysqlserverteam.com/upgrading-directly-from-mysql-5-0-to-5-7-using-an-in-place-upgrade/
- sqlserver获取指定数据库的描述
SELECT 字段名= convert(varchar(100), a.name), 表名= convert(varchar(50), d.name ), 类型= CONVERT(varchar(50 ...
- JavaScript中的call和apply应用
ECMAScript3给Function的原型定义了两个方法,他们是Function.prototype.call 和 Function.prototype.apply. 在实际开发中,特别是在一些函 ...
- windows系统上安装与使用Android NDK r8d(二)
四. 在eclipse中集成c/c++开发环境 1. 装Eclipse的C/C++环境插件:CDT,这里选择在线安装. 首先登录http://www.eclipse.or ...