设置对象'的财产
Setting an object's property afterwards?
我正在尝试使用KineticJs,并且希望拥有对象,这样我就可以轻松地处理元素。
这是我的密码。它不起作用,我不知道为什么。(我真的不知道oop,只是在学习)
$(function(){
var stage = new Kinetic.Stage({
container: 'gridalea',
width: 172,
height: 720
});
var color_layer = new Kinetic.Layer();
var sh_layer = new Kinetic.Layer();
var Left={
light: {
frame: function(){
poly = new Kinetic.Polygon({
points: [70, 0, 0, 22, 0, 672, 70, 720, 70, 710, 6, 667, 6, 29, 70, 10, 70, 0],
stroke: 'white',
strokeWidth: 1
});
// add the shape to the layer
color_layer.add(poly);
stage.add(color_layer);
},
fill: function(color){
poly.setFill(color);
}
},
dark: {
frame: function(){
var poly = new Kinetic.Polygon({
points: [6, 193, 6, 667, 11, 663, 11, 440, 6, 437, 6, 427, 11, 425, 11, 193, 6, 193],
stroke: 'white',
strokeWidth: 1
});
// add the shape to the layer
color_layer.add(poly);
stage.add(color_layer);
},
fill: function(color){
poly.setFill(color);
}
},
}
Left.light.frame();
Left.light.fill('red');
});
我打算做的是能够在创建多边形后设置多边形的填充颜色,我必须处理图像的很多部分,所以我使用对象使其变得简单。你能指出我代码中的问题吗?我很抱歉我知道我是瘸子,我只需要你的帮助。
编辑:当我添加时
Left.dark.frame();
Left.dark.fill('red');
之后
Left.light.frame();
Left.light.fill('red');
Left.light.frame()变为红色,但Left.ddark.frame()不进行
问题是我必须在填充层之后将其添加到阶段!
stage.add(color_layer);
进入最底部的
fill
函数的末尾应该有color_layer.draw()
或stage.draw()
。
为什么它能像编辑中提到的那样工作:
基本上,当您在调用Left.light
之后调用Left.dark.frame()
时,您正在将另一个对象添加到层中,并试图将层添加回舞台,其中之一(我不确定目前哪一个可以查看源)是调用draw()
方法。我的猜测是,很可能是再次将层添加到舞台上的调用,这会刷新画布,您会看到Light多边形的填充颜色。
相关文章:
- 引用对象中的通用值
- jQuery匹配JSON对象的部分文本
- 节点导出返回一个空对象
- 如何在Javascript中将JSon对象转换为数组
- 我可以在json对象中添加一个函数吗
- 使用JS将数组转换为json对象
- 全局变量和全局对象的属性之间有什么区别吗
- 比较从函数和生成的日期对象
- Javascript,访问一个主要对象模块模式中的每个对象
- 如果使用 lodash 将属性存在于另一个对象中,则向对象添加属性
- 调整窗口大小时,可拖动的对象会出现在容器外部
- 如何使用javascript从主svg对象动态创建svg视图框
- 如何使用json将对象列表从java转换为javascript
- cordova:例外:财产'requestFileSystem'的[对象全局]不是函数
- 访问对象的最简单方法'的单独财产
- 设置对象'的财产
- 财产的价值'openNewWin'为null或未定义,而不是Function对象
- 访问Javascript对象's的财产内部分离
- Javascript删除对象.财产不工作
- 对象上的Jquery函数'的财产