2014-10-13 2 views
0

Я пытаюсь получить ширину формы узла в кинетиках. Я делаю это:Получить ширину прямоугольной формы

 var node = left.find('Rect'); 
     var width = node.width() 
     console.log(width); 

и левая группа, которая имеет Rect.

var shape = new Kinetic.Rect({ 
    x: 0, 
    y: 0, 
    width: C_EC_WIDTH, 
    height: C_EC_WIDTH, 
    fill: viewcolor, 
    stroke: "black", 
    strokeWidth: 1 
    }); 

    left.add(shape); 

Но я всегда получаю этот результат:

enter image description here

Я попытался GetWidth(), setWidth (100), ширина() и ширина (100). Ширина (100) и setWidth (100) работали правильно. Но другие нет! Я не могу получить доступ к ширине формы, я всегда получаю объект!

Что я делаю неправильно?

Edit:

Пробовал так:

var width = node.width().width().width(); 

и имеют один и тот же результат. Он возвращает кинетический объект! Я не имею понятия почему! Для меня это не имеет никакого смысла.

ответ

1

find() функция возвращает коллекцию объектов. У вас может быть много прямоугольников в контейнере. Так должно это сделать:

var node = left.find('Rect')[0]; 
    var width = node.width() 
    console.log(width); 
+0

Большое спасибо! Я этого не помнил. – Mario

+0

Знаете ли вы, что случилось с ссылкой на учебник на официальной странице кинетики? http://www.html5canvastutorials.com/kineticjs/html5-canvas-events-tutorials-introduction-with-kineticics/ – Mario

+1

Разбитый. Похоже, у майонеза нет времени на ремонт. Использовать архив: https://web.archive.org/web/20140410105707/http://www.html5canvastutorials.com/kineticjs/html5-canvas-kineticjs-spline-tutorial/ – lavrton