2009-08-04 5 views
0

Normalement, si vous chargez une image à partir d'une URL que vous procédez comme suit:Comment obtenir la taille d'une image intégrée/swf?

m_image = new Image(); 
m_image.addEventListener(Event.COMPLETE, image_completeHandler, false, 0, true); 
m_image.source = "http://www.example.com/image.jpg"; 

private function image_completeHandler(event:Event):void 
{ 
    // Image content has now loaded, we need to wait for it to validate it's size 
    m_image.addEventListener(FlexEvent.UPDATE_COMPLETE, image_updateCompleteHandler, false, 0, true); 
} 

private function image_updateCompleteHandler(event:FlexEvent):void 
{ 
    // Do stuff with width/height 
} 

Mais, si vous définissez la source à une classe d'image intégrée, l'événement complet ne semble pas tirer. Donc ma question est, comment pouvez-vous obtenir la largeur/hauteur d'une image intégrée/swf?

Répondre

2

Le instatiation d'un actif est incorporé syncronous (je pense que la seule exception est Loader.loadBytes), dès que vous le faites, vous pouvez accéder à toutes ses propriétés:

image = new EmbeddedImage(); 
trace(image.width, image.height); 
+0

Cela signifie que le chargement ISN 't synchrone même lors de l'intégration: http://livedocs.adobe.com/flex/3/langref/mx/core/MovieClipLoaderAsset.html#event:complete –

+0

AFAIK, vous n'avez pas besoin d'utiliser MovieClipLoaderAsset pour les ressources intégrées. .. – Cay

Questions connexes