Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flash 从Actionscript中的加载程序接收数据_Flash_Actionscript 3 - Fatal编程技术网

Flash 从Actionscript中的加载程序接收数据

Flash 从Actionscript中的加载程序接收数据,flash,actionscript-3,Flash,Actionscript 3,这是我在Adobe文档页面上注意到的 从URL接收文本文件时,设置文本的函数如下所示: function completeHandler(event:Event):void { var txt:String = URLLoader(event.currentTarget).data as String; tf.text = txt; ... } 或者这个: function completeHandler(event:Event):void { tf.text

这是我在Adobe文档页面上注意到的

从URL接收文本文件时,设置文本的函数如下所示:

function completeHandler(event:Event):void {
    var txt:String = URLLoader(event.currentTarget).data as String;
    tf.text = txt;
    ...
}
或者这个:

function completeHandler(event:Event):void {
    tf.text = URLLoader(event.target).data;
    ...
}
我自己,我总是这样做:

function completeHandler(event:Event):void {
    tf.text = event.target.data;
    ...
}

所以我的问题是:我应该注意到有什么重要的区别吗?

如果这三种方法都很好地工作,并且它们都能完成您需要它们做的事情,那么就没有什么显著的区别,只是类型转换-使用对您更容易的方法。:)

三者之间唯一可能的、有益的区别是铸造。通过强制转换loaders数据对象的结果,您基本上做了两件事:将类型强制到数据上,从而基本上执行类型检查;其次,您显式地告诉虚拟机它正在处理什么类型的数据,而不是让它自己弄清楚。第二点,这可能会提高性能。关于强制转换和类型检查的第一点,请允许我提供一个场景。假设您正在加载一个XML文件。也许您所要做的就是像在这里所做的那样在文本字段中显示XML,但是您需要确保它是有效的XML。您可以在try/catch语句中将结果显式转换为XML,如下所示:

function completeHandler(event:Event):void {
   var res:XML;

   try{
      res = new XML(e.currentTarget.data);
      tf.text = res.toString();
   }catch(e:Error){
      //Do something or nothing about this error
      tf.text = "You have attempted to open an XML file containing mal-formed XML data.";
   }    
}

正如你所看到的,这不仅仅是个人选择的问题。性能和良好实践中的简单编程开始发挥作用。ActionScript3是一种严格类型化的语言,其原因是:严格类型化既能确保正确的功能,又能实现优化/更好/更干净的执行。证明这一点的一个事实是actionscript 2,非严格类型的虚拟机,它的运行速度比AVM2(actionscript 3 vm)慢20倍左右。

没问题,很高兴我能帮忙:)