2009-03-14 1 views
1

Я использую AS3 в Flex 3 для создания нового изображения и, похоже, не могу получить точный размер исходного изображения. percentHeight & percentWidth to 100 может выполнять эту работу, но ограничение в ObjectHandlers требует, чтобы я установил масштаб изображения в пиксель.Получить оригинальную ширину и высоту изображения в actionscript

Любое решение?

+0

. Как вы создаете это новое изображение? Из бита? – dirkgently

ответ

6

Примечание: это также применимо для отображения оригинального размера изображения без управления ObjectHandler, просто удалите те строки, которые неприменимы.

После того, как часы борьбы за решение, я нашел свой собственный ответ через форум действий, фактически, только одно решение, я удивляюсь, что такой темы в другом месте не было.

private function init():void { 
    var image:Image = new Image(); 
    image.source = "http://www.colorjack.com/software/media/circle.png"; 
    image.addEventListener(Event.COMPLETE, imageLoaded); 
    /* wait for completion as Image control is asynchronous, 
    * which mean ObjectHandler will attempt to load asap 
    * and you are not able to get the correct dimension for scaling. 
    * EventListener fixed that. 
    */ 
    this.addChild(image); 
    //whenever you scale ObjectHandler control, the image is always fit by 100% 
    image.percentHeight = 100; 
    image.percentWidth = 100; 
} 

private function imageLoaded(e:Event):void{ 
    var img:Image = e.target as Image; 
    trace("Height ", img.contentHeight); 
    trace("Width ", img.contentWidth); 
    var oh:ObjectHandles = new ObjectHandles(); 
    oh.x = 200; 
    oh.y = 200; 
    oh.height = img.contentHeight; 
    oh.width = img.contentWidth; 
    oh.allowRotate = true; 
    oh.autoBringForward = true; 
    oh.addChild(img); 
    genericExamples.addChild(oh); 
} 
+0

отличная подсказка, спасибо :) –