仓库源文站点原文


layout: post title: KineticJS教程5:选择器 categories:


2015-06-11 08:27:22

9. 选择器

Kinetic在舞台, 层和组对象上都提供了get方法, 用于返回这三者中包含的对象.

9.1. 根据ID获取对象

要用id获取对象, 首先要给对象赋予一个id, 比如下面代码创建的Rectid就是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返回的是一个数组, 包含所有叫这个名字的对象.