KineticJS教程(12)

作者: ysm 

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)的更多相关文章

  1. KineticJS教程(1-2)

    1.基本结构 KineticJS首先是要绑定到HTML页面上的一个DOM容器元素上,比如最常用的<div>标签.KineticJS在此容器中创建一个称之为舞台(stage)的结构,这个舞台 ...

  2. NODE-WEBKIT教程(12)全屏

    node-webkit教程(12)全屏 文/玄魂 目录 node-webkit教程(12)全屏 前言 12.1  和全屏有关的三个api Window.enterFullscreen() Window ...

  3. KineticJS教程(11)

    KineticJS教程(11) 作者: ysm 11.对象的上下关系 11.1.层的上下关系 Kinetic的层是按照添加到舞台的次序,由下向上排列,上层遮盖下层的图形.每个层各自有一个ZIndex编 ...

  4. KineticJS教程(10)

    KineticJS教程(10) 作者: ysm  10.在容器之间移动图形对象 Kinetic支持通过图形对象的moveTo(container)方法把图形对象从一个容器移动到另一个容器里,这个容器指 ...

  5. KineticJS教程(9)

    KineticJS教程(9) 作者: ysm  9.选择器 Kinetic在舞台.层和组对象上都提供了get方法,用于返回这三者中包含的对象. 9.1.根据ID获取对象 要用id获取对象,首先要给对象 ...

  6. KineticJS教程(8)

    KineticJS教程(8) 作者: ysm  8.动画 动画就是一帧帧的画面按照时间间隔显示出来,Kinetic给我们提供了一个舞台对象的onFrame方法,用这个方法可以绑定一个动画方法,我们要显 ...

  7. KineticJS教程(7)

    KineticJS教程(7) 作者: ysm 7.图形变换 7.1.线性变化 Kinetic提供了一个图形对象的transitionTo(config)方法实现图形的线性变换,也就是从原始的状态线性变 ...

  8. KineticJS教程(6)

    KineticJS教程(6) 作者: ysm 6.拖拽 6.1.拖拽功能 要实现Kinetic对象的拖拽功能很简单,只需要将图形对象的draggable属性设为true就可以了. <script ...

  9. KineticJS教程(5)

    KineticJS教程(5) 作者: ysm  5.事件响应 5.1.图形的事件响应 图形对象对事件的响应处理可以使用 on() 方法绑定事件类型和相应方法. On() 方法需要一个事件类型参数和相应 ...

随机推荐

  1. bzoj 3940: [Usaco2015 Feb]Censoring -- AC自动机

    3940: [Usaco2015 Feb]Censoring Time Limit: 10 Sec  Memory Limit: 128 MB Description Farmer John has ...

  2. Codeforces Beta Round #7 D. Palindrome Degree hash

    D. Palindrome Degree 题目连接: http://www.codeforces.com/contest/7/problem/D Description String s of len ...

  3. IndiaHacks 2016 - Online Edition (Div. 1 + Div. 2) E. Bear and Forgotten Tree 2 bfs set 反图的生成树

    E. Bear and Forgotten Tree 2 题目连接: http://www.codeforces.com/contest/653/problem/E Description A tre ...

  4. 2015 百度之星 1004 KPI STL的妙用

    KPI Time Limit: 20 Sec  Memory Limit: 256 MB 题目连接 http://acdream.info/problem?pid=1754 Description 你 ...

  5. Codeforces Round #302 (Div. 2) A. Set of Strings 水题

    A. Set of Strings Time Limit: 20 Sec  Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/544/pr ...

  6. SVN 服务器搭建及使用 一

    SVN服务器搭建和使用(一) Subversion是优秀的版本控制工具,其具体的的优点和详细介绍,这里就不再多说. 首先来下载和搭建SVN服务器. 现在Subversion已经迁移到apache网站上 ...

  7. 两个不同网段的PC直连是否可以Ping通,肯定可以Ping的通(转)

    在这一篇文章中http://blog.csdn.net/zhangdaisylove/article/details/46892917的案例,明确的说明两个不同网段的PC不能Ping的通,其实他给出的 ...

  8. 谈谈SQL server的 worker threads-----微软亚太区数据库技术支持组 官方博客

    https://blogs.msdn.microsoft.com/apgcdsd/2012/11/27/sql-server-worker-threads/

  9. find命令专辑

    find命令使用技巧 查找文件,移动到某个目录 使用find和xargs 15条 linux Find 命令实际使用方法 find 命令用法 find命令使用经验 find用法小结 find与xarg ...

  10. 【spring cloud】子模块module -->导入一个新的spring boot项目作为spring cloud的一个子模块微服务,怎么做/或者 每次导入一个新的spring boot项目,IDEA不识别子module,启动类无法启动/右下角没有蓝色图标

    如题:导入一个新的spring boot项目作为spring cloud的一个子模块微服务,怎么做 或者说每次导入一个新的spring boot项目,IDEA不识别,启动类无法启动,怎么解决 下面分别 ...