2015-04-15 3 views
1

Я использую createjs 0.8.0 и имею проблему получения размера растрового изображения. Он всегда возвращает 0Как получить Bitmap width/height createjs

Вот мой сниппет:

var imgVisa  = new createjs.Bitmap("assets/images/Visa_logo.png"); 
    console.log("imgVisa x : " + imgVisa.image.width); 
    var imgVisaX = initialXpos; 
    var imgVisaY = canvas.height - 300; 

будет иметь imgVisa.image.width = 0.

и если я использую:

imgSplash.Bitmap.width 

Он бросит мне ошибку: неперехваченным TypeError: Не удается прочитать свойство 'ширина' неопределенной

Любой может помочь?

+0

Я отметил это на (устаревшее, мы ездим здесь люди сейчас) CreateJS сообщества. В дополнение к нижеприведенному решению нет свойств Bitmap для экземпляров Bitmap. вместо этого используйте 'imgSplash.image'. – Lanny

+0

да, я это знаю сейчас ... Я использую preloadJS, поэтому я могу делать все, что захочу, после предварительной загрузки моих активов. – noobsee

ответ

3

Вы должны попытаться поджать изображение первого:

var img = new Image() 
    img.onload = function() { 
     // gets called when the img is loaded 
    }; 
    img.src = 'img.png'; 

Имейте в виду, что функция OnLoad вызывается при загрузке изображения, так что асинхронная.

+0

нет способа сделать это до загрузки? Мне нужно установить положение изображения, зависит от его размера – noobsee

+2

Нет, изображение должно быть загружено первым - в противном случае вы не можете проверить размер ... Вы можете использовать что-то вроде PreloadJS и предварительно загружать все свои изображения в первую очередь и затем создайте свой холст, как только все будет загружено. – derz

+0

Он работает с preloadJS, спасибо .. – noobsee

1

Вы можете использовать Bitmap.getBounds(). Ширина

+0

Это будет работать только после загрузки изображения Bitmap. – Lanny

Смежные вопросы