actionscript-3 - 是否可以读取(并可能更改)核心 Flash 类文件的来源?

标签 actionscript-3 flash flash-builder

我想阅读 flash.net.FileReference 的来源类(class)。这可能吗?我在哪里可以找到源文件,它们是随 Adob​​e Flash 还是 Flash Builder 提供的?

最佳答案

要读取 flash 包文件,您可以找到 playerglobal.swc - 将名称更改为 playerglobal.zip 并解压缩包。然后,反编译 library.swf 文件并获取脚本文件。这是我为 FileReference 找到的内容:

//FileReference
package flash.net 
{
    import flash.events.*;
    import flash.utils.*;

    public class FileReference extends flash.events.EventDispatcher
    {
        public function FileReference()
        {
            super();
            return;
        }

        public function upload(arg1:flash.net.URLRequest, arg2:String="Filedata", arg3:Boolean=false):void
        {
        }

        private function _load(arg1:flash.utils.ByteArray):void
        {
        }

        public function load():void
        {
            this._load(new ByteArray());
            return;
        }

        public function get size():uint
        {
        }

        public function get type():String
        {
        }

        public function browse(arg1:Array=null):Boolean
        {
        }

        public function get name():String
        {
        }

        public function get creator():String
        {
        }

        public function get creationDate():Date
        {
        }

        public function download(arg1:flash.net.URLRequest, arg2:String=null):void
        {
        }

        public function get modificationDate():Date
        {
        }

        public function get data():flash.utils.ByteArray
        {
        }

        public function cancel():void
        {
        }

        private function _save(arg1:flash.utils.ByteArray, arg2:String):void
        {
        }

        public function save(arg1:*, arg2:String=null):void
        {
            var defaultFileName:String=null;
            var data:*;
            var d:flash.utils.ByteArray;

            var loc1:*;
            data = arg1;
            defaultFileName = arg2;
            d = new ByteArray();
            if (data == null) 
            {
                throw new ArgumentError("data");
            }
            if (data is String) 
            {
                d.writeUTFBytes(data as String);
            }
            else if (data is XML) 
            {
                d.writeUTFBytes((data as XML).toXMLString());
            }
            else if (data is ByteArray) 
            {
                d.writeBytes(data as ByteArray);
            }
            else 
            {
                try 
                {
                    d.writeUTFBytes(data);
                }
                catch (e:Error)
                {
                    throw new ArgumentError("data");
                }
            }
            d.position = 0;
            if (defaultFileName == null) 
            {
                defaultFileName = "";
            }
            this._save(d, defaultFileName);
            return;
        }
    }
}

我强烈建议不要更改此文件,而是扩展它并覆盖您需要修改的功能。否则,您需要重新编译 library.swf 并创建自定义 playerglobal.swc。

关于actionscript-3 - 是否可以读取(并可能更改)核心 Flash 类文件的来源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6046685/

相关文章:

flash - 在 AS3 中最简单的 onReleaseOutside 实现?

apache-flex - ActionScript 3 规范为 PDF?

php - 如何在网络中实现类似谷歌地图的缩放和平移系统?

image - 在 ActionScript 3 中将 JPG 读入 BitmapData(JPG 位于 APK 文件内)

flash - 如何反汇编 ABC 字节码?

java - 无法在 Flash Builder 4.5 上安装 Web Developer Tools(WTP 的 JSP 编辑器)

java - 安装 Apache Flex SDK 4.16.0 后 Flash Builder 4.7 无法打开

android - 在 ICS 的 webViewClient 中播放 SWF 文件?

flash - Actionscript 对象的属性数

actionscript-3 - gem 迷阵风格网页游戏的 native Flash 渲染与 Starling 框架渲染