最近开始学习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"说有必要这样做。请帮我解决这个问题。提前谢谢。
答案 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
}