flash as3中event/evt/e三者的区别是啥?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了flash as3中event/evt/e三者的区别是啥?相关的知识,希望对你有一定的参考价值。

参考技术A 没区别 那个只是一个变量名罢了

你喜欢写成 a b c d 都没所谓
只不过一般有几种程序员风格罢了

e:Event 是javascript程序员的风格 因为少写点字符 省网络流量
event是as3程序员的风格
_evt或evt是有一定面向对象程序经验的程序员的风格

本人偏好习惯使用 _evt本回答被提问者采纳

Flash AS3 加载文件 xml

【中文标题】Flash AS3 加载文件 xml【英文标题】:Flash AS3 load file xml 【发布时间】:2010-11-15 11:41:11 【问题描述】:

我只是想加载一个 xml 文件,它可以在硬盘中,这是我浏览它时所做的,但后来当我尝试加载文件时,它只会在相同的路径中查找swf文件

这里是代码

包 导入 flash.display.Sprite; 导入 flash.events.; 导入 flash.net.;

public class cargadorXML extends Sprite 


    public var cuadro:Sprite = new Sprite();
    public var file:FileReference;
    public var req:URLRequest;
    public var xml:XML;
    public var xmlLoader:URLLoader = new URLLoader();

    public function cargadorXML() 
        cuadro.graphics.beginFill(0xFF0000);
        cuadro.graphics.drawRoundRect(0,0,100,100,10);
        cuadro.graphics.endFill();
        cuadro.addEventListener(MouseEvent.CLICK,browser);
        addChild(cuadro);

    
    public function browser(e:Event) 

        file = new FileReference();
        file.addEventListener(Event.SELECT,bien);
        file.browse();

    
    public function bien(e:Event) 
        xmlLoader.addEventListener(Event.COMPLETE, loadXML);
        req=new URLRequest(file.name);
        xmlLoader.load(req);
    
    public function loadXML(e:Event) 
        xml=new XML(e.target.data);
        //xml.name=file.name;
        trace(xml);
    

当我打开一个与 swf 不是同一目录的 xml 文件时,它给了我一个未找到的文件错误。 有什么我可以做的吗? 例如,对于 mp3,有一个特殊的类用于加载文件,请参阅http://www.flexiblefactory.co.uk/flexible/?p=46

谢谢

【问题讨论】:

【参考方案1】:

请注意,该答案仅适用于 AIR 应用程序!

【讨论】:

【参考方案2】:

由于您正在加载本地 xml 文件,因此您需要使用 FileStream.read() 而不是 URLRequest。另请注意,file.name 只会为您提供文件名,而不是完整路径,因此您需要做的是:

 public function bien(e:Event) 
    var file:File = File.documentsDirectory.resolvePath(e.target);
    var fileStream:FileStream = new FileStream();
    fileStream.open(file, FileMode.READ);
    var prefsXML:XML = XML(fileStream.readUTFBytes(fileStream.bytesAvailable));
    fileStream.close();

您可能想要阅读 FileStream 参考 (http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/filesystem/FileStream.html),如果您要打开一个大型 xml 文件,则需要异步读取它。

【讨论】:

【参考方案3】:
var cuadro:Sprite = new Sprite();
var file:FileReference;
var xml:XML;

function cargadorXML() 
    cuadro.graphics.beginFill(0xFF0000);
    cuadro.graphics.drawRoundRect(0,0,100,100,10);
    cuadro.graphics.endFill();
    cuadro.addEventListener(MouseEvent.CLICK,browser);
    addChild(cuadro);


function browser(e:Event) 

    file = new FileReference();
    file.addEventListener(Event.SELECT,bien);
    file.browse();


function bien(e:Event) 
    file.addEventListener(Event.COMPLETE, loadXML);
    file.load();

function loadXML(e:Event) 
    xml = new XML(e.target.data);
    trace(xml);


cargadorXML();

加载本地 XML 文件。 它可能会帮助某人......

【讨论】:

以上是关于flash as3中event/evt/e三者的区别是啥?的主要内容,如果未能解决你的问题,请参考以下文章

Flash预加载程序as3类似苹果风格的代码。

AS3 Flash Builder 错误 参数数量不正确

Flash AS3 加载文件 xml

Flash AS3 保存图片到本地

flash cs5 用as3.0给按钮加链接

Flash AS3 帮助检测加载的文件