layout: post
title: KineticJS教程5:选择器
categories:
2015-06-11 08:27:22
9. 选择器
Kinetic
在舞台, 层和组对象上都提供了get
方法, 用于返回这三者中包含的对象.
9.1. 根据ID获取对象
要用id
获取对象, 首先要给对象赋予一个id
, 比如下面代码创建的Rect
的id
就是id1
:
<pre class="line-numbers" data-start="0"><code class="language-javascript"># Language: js
<script>
var rect = new Kinetic.Rect({
id: "id1"
});
</script>
</code></pre>要注意的是, id
是唯一的, 不同对象不能使用相同的id
, 否则get
也只能返回其中的一个.
然后用get
方法, id
选择符#
为参数获取对象:
<pre class="line-numbers" data-start="0"><code class="language-javascript"># Language: js
<script>
var obj = stage.get('#id1')[0];
var obj = layer.get('#id1')[0];
var obj = group.get('#id1')[0];
</script>
</code></pre>这个地方要注意, 这个get
返回的是一个数组, 即便id
是唯一的, 所以要得到所要的对象, 必须带上数组的索引.
9.2. 根据名称获取对象
要用名称获取对象, 首先要给对象赋予一个name
名称, 比如下面代码创建的Rect
的名称就是name1
:
<pre class="line-numbers" data-start="0"><code class="language-javascript"># Language: js
<script>
var rect = new Kinetic.Rect({
name: "name1"
});
</script>
</code></pre>与id
不同, name
不是唯一的, 不同对象是可以共用相同的name
的.
然后用get
方法, id
选择符.
为参数获取对象:
<pre class="line-numbers" data-start="0"><code class="language-javascript"># Language: js
<script>
var objs = stage.get('.name1');
var objs = layer.get('.name1');
var objs = group.get('.name1');
</script>
</code></pre>这个地方要注意, 这个get
返回的是一个数组, 包含所有叫这个名字的对象.