Это займет немного больше, чтобы описать, извините за более короткий заголовок.Generic: Структура и чертеж именования KineticJS
В настоящее время у меня нет моего кода передо мной, но может обновить его с полной информацией о том, как он работает и где проблема.
В основном я замечаю, что, не делая более или менее глобального имени (window.whatever) для фигур/групп, он никогда не будет их рисовать. Я сделал журналы объектов, чтобы убедиться, что они правильные и не видели ничего плохого с ними.
Полный объем - это первый слой, который передается функции, которая затем логически формирует фигуры и группы, не передавая группы назад и вместо этого отправляя слой в качестве параметра, чтобы добавить его изнутри функции , Когда я делаю это так, кажется, что я никогда не смогу его привлечь к контейнеру (этап).
Чтобы добавить к нему, я создаю круги для создания фигур, так как я делаю их переменными и более процентными, а затем точными пикселями, поэтому я держу объекты в массиве, который генерируется через цикл.
Я сделал эту плоскость сначала, и она сработала, однако после ее перемещения в функцию она перестала работать, есть ли какие-либо причины для этого, я могу не хватать?
Другое примечание, если это актуально, я использую Adobe AIR.
Если у кого-нибудь есть идеи, дайте мне знать, я отправлю фактический код, когда смогу (несколько часов с этой публикации).
UPDATE:
В основном проблема, которую я имею что когда я отделить формы/группы в свою собственную функцию, которую он не хочет, чтобы привлечь их на всех. Я попытался вызывать функцию draw inline, а также просто добавить их на сцену позже, и я понимаю, что это приведет к розыгрышу.
здесь код
var forms = {
selector:function(params,bind){
//globals
var parent,obj,lastWidth=0,items=[];
//setup defaults
var params = params || {};
params.x = params.x || 0;
params.y = params.y || 0;
params.active = params.active || 0;
params.height = params.height || 200;
params.children = params.children || [{
fill:'yellow'
}];
params.width = params.width || bind.getWidth();
params.margins = params.margins || 5;
//container for selector
parent = new Kinetic.Group({
x:params.x,
y:params.y,
height:params.height,
width:params.width
});
air.Introspector.Console.log(params);
var totalMargins = params.margins*(params.children.length+1),
activeWidth = (params.width-totalMargins)/2,
subItems = params.children.length-1,
subWidth = activeWidth/subItems,
itemHeight = (params.height-params.margins)/2;
//loop all children
for(var i=0;i<params.children.length;i++){
//use an array to store objects
items[i]={};
//create default object for rectangle
obj = {};
obj.y = params.margins;
obj.fill = params.children[i].fill;
if(params.active==i){
obj.width = activeWidth;
}else{
obj.width = subWidth;
}
obj.x = params.margins+lastWidth;
obj.height = itemHeight;
lastWidth = lastWidth+(params.margins+obj.width);
//create group for text
items[i].text = new Kinetic.Group({
x:0,
y:itemHeight+params.margins
});
//create box for text
items[i].box = new Kinetic.Rect({
x: params.margins,
y: params.margins,
width:params.width-(params.margins*2),
height:(params.height-itemHeight)-(params.margins*2),
fill:'yellow'
});
air.Introspector.Console.log(items[i].box);
//add box to text groups
items[i].text.add(items[i].box);
//create item
items[i].item = new Kinetic.Rect(obj);
//add groups to parent
parent
.add(items[i].item)
.add(items[i].text);
}
//add parent to the bound container
bind.add(parent);
}
}
Не могу понять, что вы просите ... Помогает ли этот пример: http://jsfiddle.net/m1erickson/453n6/ – markE
На самом деле это может привести к обновлению вопроса и вскоре сможет показать мой код , У вас небольшое изменение в том, что я делаю, мне придется его протестировать. –