2015-06-11 08:27:22
12. 舞台
12.1. 舞台的大小
舞台创建后还可以用舞台对象的setSize(width, height)
方法来设置舞台的宽度与高度.
# Language: js
<script>
stage.setSize(300, 100);
</script>
12.2. 舞台的缩放
舞台创建后还可以用舞台对象的setScale()
方法来对舞台进行缩放. setScale
方法可以接受一个参数, 也可以接受两个参数, 一个参数是指的横向与纵向均以相同比例缩放, 两个参数则是分别设定横向与纵向的缩放比例. 参数是不小于0的浮点数, 表示缩放的比例, 小于1表示缩小, 大于1表示放大. 另外, 缩放是以舞台的左上角为基点的.
# Language: js
<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进行处理了.
# Language: js
<script>
stage.toDataURL(function(dataUrl, mimeType, quality){
// 在这里对dataUrl, mimeType, quality 信息进行处理
});
</script>
12.4. 将舞台保存成JSON数据
将舞台数据保存成JSON数据只需要执行舞台对象的toJSON
方法即可.
# Language: js
<script>
var json = stage.toJSON();
</script>
12.5. 把JSON数据加载回舞台
将舞台数据保存成JSON数据只需要执行舞台对象的load
方法即可.
# Language: js
<script>
// 创建舞台对象
var stage = new Kinetic.Stage({
container: "container",
width: 600,
height: 400
});
// 加载舞台
stage.load(json);
</script>
这个地方要注意, 对于事件处理和图像, 是不能被序列化成JSON的, 需要在加载JSON数据后在加载图像并设定这些事件处理方法.