使用URLRequest加载图像

时间:2014-01-16 16:51:48

标签: actionscript-3

最近开始学习ActionScript 3并且已经有问题了。 问题仍然存在:我使用对象Loader.load(URLRequest)上传图片。正常加载并显示图片。但是不可能读取图像高度和宽度的属性值,而是发出零。也就是说,这样做:

 var loader:Loader=new Loader();

 var urlR:URLRequest=new URLRequest("Image.jpg");   
 public function main()   
{  
 loader.load(urlR);  
 var h:Number = loader.height;// here instead of the width of the image of h is set to 0   
 // And if you do like this:    
 DrawText(loader.height.toString(10), 50, 50); // Function which draws the text as defined below   
 // 256 is displayed, as necessary  
}
  private function DrawText(text:String, x:int, y:int):void  
{  
          var txt:TextField = new TextField();  
 txt.autoSize = TextFieldAutoSize.LEFT;  
 txt.background = true;  
 txt.border = true;  
 txt.backgroundColor = 0xff000000;

 var tFor:TextFormat = new TextFormat();   
 tFor.font = "Charlemagne Std";   
 tFor.color = 0xff00ff00;   
 tFor.size = 20;  

 txt.x = x;   
 txt.y = y;   
 txt.text = text;   
 txt.setTextFormat(tFor);   

addChild(txt);  
  }      

也许属性值必须通过特殊功能获得,但在书中K.Muka" ActionScript 3 for fash"说有必要这样做。请帮我解决这个问题。提前谢谢。

2 个答案:

答案 0 :(得分:2)

嗯,这很简单 Flash专注于互联网,因此存在这样的问题。

如果你写了loader.load(urlR);它并不意味着加载。因此,在确认装载结束的事件之前,在装载中为空 如果,而不是某些功能将是更多的代码,可能会绊倒你的方法。 是的,还是高度依赖于您阅读的文件的大小。 嗯,一般来说都是歌词。在loader.contentLoaderInfo.addEventListener(Event.INIT,_ onEvent),onEvent和read属性上监听事件。

答案 1 :(得分:2)

您需要等待加载图片才能从中获取值。 将eventListener附加到URLLoader

var urlR:URLRequest = new URLRequest("Image.jpg");   
loader.load(urlR);  
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loader_complete);

function loader_complete(e:Event): void {
    // Here you can get the height and width values etc.
    var target_mc:Loader = evt.currentTarget.loader as Loader;
    // target_mc.height , target_mc.width
}

Loader