2015-08-28 19 views
2

如何获得createJS中位图图像的宽度?我需要它只改变图像的宽度来计算scaleX值。顺便说一下,有没有直接的方法来改变图像宽度,或者我需要使用scaleX属性?如何使用createJS获取位图的宽度?

使用库中的preloadJS预加载每个图像。

piecesArray[0].val = Math.floor(Math.random() * 50) 
piecesArray[0].sym = new lib["a"+ piecesArray[0].val]() 

model = new createjs.Bitmap(piecesArray[0].sym);  
(function to change width) 
stage.addChild(model.image) 

我搜索使用控制台模型的所有变量和没有的getBounds(),也没有宽度,也没有高度,也不nominalBounds ...

附:这会发生什么,当我使用控制台

model = new createjs.Bitmap(new lib["c"+ 1]()); 
a {_listeners: null, _captureListeners: null, alpha: 1, cacheCanvas: null, cacheID: 0…} 
console.log(model.image) 
VM281:2 lib.c1 {spriteSheet: a, paused: true, currentAnimationFrame: 0, _animation: null, currentAnimation: null…} 
undefined 
console.log(model.image.width) 
VM282:2 undefined 
undefined 

回答

2

您可以通过bitmap.image.width获得图像的大小,所以在你的代码将是model.image.width测试。不,没有直接的方法来设置位图的宽度 - 你必须通过scaleX/scaleY进行设置。

+0

我已经试过了,但它说它是“未定义的” – Condward

+0

然后在代码中的其他地方必须有一个错误。你应该确保'piecesArray [0] .sym'是一个有效的图像。 – derz

0

在创建位图之前通过重新调整大小来解决它。我认为我无法得到宽度值的原因是因为图像来自spritesheet。

piecesArray[0].sym.scaleX = 232/piecesArray[0].sym.getBounds().width 
piecesArray[0].sym.scaleY = 150/piecesArray[0].sym.getBounds().height 
model = new createjs.Bitmap(piecesArray[0].sym); 
相关问题