加入浏览按钮和地址输入框,可以用ie打开使用。已经很有实用价值了。

http://download.csdn.net/source/2058487

anlin2.as中在下载资源中没有更新。

anlin.as

package
{
    import flash.events.*;
    import flash.net.*;
    import flash.utils.*;
    import flash.display.*;
    import flash.external.*;
    import flash.system.*;
 import flash.text.*;
 import fl.controls.*;
 import fl.events.ScrollEvent;

public class anlin extends MovieClip
    {
        private var urlStream:URLStream;
  private var myFileReference:FileReference;
  private var circle:Sprite = new Sprite();
  private var myScrollBar=new ScrollBar();
  private var filedirTextBox:TextField = new TextField();
  
        public function anlin(param1:Sprite = null, param2:Sprite = null)
        {
   addChild(filedirTextBox);
   filedirTextBox.type = TextFieldType.INPUT;
   filedirTextBox.text="若docin文件在不同目录需在此输入文件路径";
   filedirTextBox.border=true;
   filedirTextBox.background=true;
   filedirTextBox.backgroundColor=0xffffff;
   filedirTextBox.height=filedirTextBox.textHeight+4;
   filedirTextBox.width=300;
   filedirTextBox.x=50;
   filedirTextBox.y=300;
   filedirTextBox.addEventListener(FocusEvent.FOCUS_IN , filedirTextBoxfocusIn);
   
    var liulanButton=new Button();
   addChild(liulanButton);
   liulanButton.label = "浏览" ;
   liulanButton.width = 40;
   liulanButton.addEventListener(MouseEvent.CLICK, liulanButtonClick);
   liulanButton.move(filedirTextBox.x+filedirTextBox.width+5,filedirTextBox.y-2);
   
   var openButton=new Button();
   addChild(openButton);
   openButton.label = "打开" ;
   openButton.width = 40;
   openButton.addEventListener(MouseEvent.CLICK, openButtonClick);
   openButton.move(liulanButton.x+liulanButton.width+5,filedirTextBox.y-2);
   
   urlStream = new URLStream();
            urlStream.endian = Endian.LITTLE_ENDIAN;
            urlStream.addEventListener(Event.COMPLETE, completeHandle);
            urlStream.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandle);
            urlStream.addEventListener(Event.OPEN, urlStreamOpenHandle);
   
  }
    
  private function filedirTextBoxfocusIn(e:FocusEvent) : void//
        {
   if(filedirTextBox.text=="若docin文件在不同目录需在此输入文件路径")
   filedirTextBox.text="";
        }
  
  private function liulanButtonClick(e:MouseEvent) : void//“浏览”按钮
        {
   myFileReference = new FileReference();
            myFileReference.browse([new FileFilter("*.docin", "*.docin"),new FileFilter("*.*", "*.*")]);
   myFileReference.addEventListener(Event.SELECT, selectHandler);
        }
  
  private function openButtonClick(e:MouseEvent)  : void//“打开”按钮
  {
   urlStream.load(new URLRequest(filedirTextBox.text));
   this.addChild(circle);
   circle.addEventListener(MouseEvent.MOUSE_DOWN, mouseDown)
   circle.addEventListener(MouseEvent.MOUSE_UP, mouseReleased);
   this.addEventListener(MouseEvent.MOUSE_WHEEL, mouseWheelHandler);
   circle.opaqueBackground =0x869ca7;
   var myButton=new Button();
   addChild(myButton);

myButton.label = "还原" ;
   myButton.width = 40;
   myButton.addEventListener(MouseEvent.CLICK, buttonClick);
   myButton.move(myButton.stage.stageWidth-myButton.width,0);
   trace("stageWidth"+myButton.stage.stageWidth );
   
   myScrollBar.move(myButton.stage.stageWidth-15,myButton.height);
   myScrollBar.height=myButton.stage.stageHeight-myButton.height;
   myScrollBar.maxScrollPosition=100;
   myScrollBar.minScrollPosition=0;
   trace(myScrollBar.scrollPosition);
   addChild(myScrollBar);
   myScrollBar.addEventListener(ScrollEvent.SCROLL , ScrollBarScroll);
        }
  
  private function selectHandler(event:Event):void//文件成功选则以后
  {
            var file:FileReference = FileReference(event.target);
   filedirTextBox.text=file.name;
        }
  private function buttonClick(e:MouseEvent) //“还原”按钮点击
  {
            circle.scaleX=1;
   circle.scaleY=1;
   circle.x=0;
   circle.y=0;
   myScrollBar.scrollPosition=0;
        }
  function ScrollBarScroll(event:ScrollEvent):void //滚动条滚动,改变显示位置
  {
   trace("ScrollBarScroll--"+myScrollBar.scrollPosition);
   circle.y=-(circle.height-myScrollBar.stage.stageHeight)*myScrollBar.scrollPosition/100;
  }
  function mouseDown(event:MouseEvent):void //鼠标按下,开始拖动
  {
   circle.startDrag();
  }
  function mouseReleased(event:MouseEvent):void //鼠标松开,停止拖动
  {
   circle.stopDrag();
   myScrollBar.scrollPosition=-circle.y*100/(circle.height-myScrollBar.stage.stageHeight+20);
  }
  private function mouseWheelHandler(event:MouseEvent):void //鼠标滚轮控制缩放
  {
   circle.height=circle.height*(1+event.delta/10);
   circle.width=circle.width*(1+event.delta/10);
   trace(circle.scaleX);
  }
        private function completeHandle(event:Event) : void
        {

var littleHeaderArray:ByteArray = new ByteArray();
            littleHeaderArray.endian = Endian.LITTLE_ENDIAN;
            littleHeaderArray.writeByte(70);
            littleHeaderArray.writeByte(87);
            littleHeaderArray.writeByte(83);
            littleHeaderArray.writeByte(9);
            littleHeaderArray.writeInt(0);
   var pageWidth:Number = urlStream.readInt();
   trace("pageWidth::" + pageWidth.toString());
   var pageHeight:Number = urlStream.readInt();
   var totalPages:int = urlStream.readInt();
   trace("_totalPages::" + totalPages.toString());
   var headerLength:int = urlStream.readInt();
   trace("headerLength::" + headerLength.toString());
   
   var headerArray:ByteArray = new ByteArray();
   headerArray.endian = Endian.LITTLE_ENDIAN;
   this.urlStream.readBytes(headerArray, 0, headerLength);
   headerArray.uncompress();
   var headerUncompressLength:int = headerArray.length;
   trace("headerArray::" + headerArray);
   trace("headerUncompressLength::" + headerUncompressLength);

for(var i:int=0;i<totalPages&&i<50;i++)
   {
    var bodyLen:int = this.urlStream.readInt();
    var bodyByteArray:ByteArray = new ByteArray();
    bodyByteArray.endian = Endian.LITTLE_ENDIAN;
    this.urlStream.readBytes(bodyByteArray, 0, bodyLen);
    bodyByteArray.uncompress();
    var bodyUncompressLen:int = headerUncompressLength + bodyByteArray.length + 8;
    
    littleHeaderArray.position = 4;
    littleHeaderArray.writeInt(bodyUncompressLen);
//                  littleHeaderArray.writeByte(_loc_3%256);
//     littleHeaderArray.writeByte(_loc_3/256%256);
//     littleHeaderArray.writeByte(_loc_3/256/256%256);
//     littleHeaderArray.writeByte(_loc_3/256/256/256);

littleHeaderArray.position = 0;

var swfLoader:Loader = new Loader();
    var swfByteArray:ByteArray = new ByteArray();
    swfByteArray.endian = Endian.LITTLE_ENDIAN;
    swfByteArray.writeBytes(littleHeaderArray);
    //headerArray.position = 0;
    swfByteArray.writeBytes(headerArray);

swfByteArray.writeBytes(bodyByteArray);
    swfLoader.loadBytes(swfByteArray);
    swfLoader.y=(pageHeight+20)*i;
    trace("swfLoader.y::" +swfLoader.y);
    var pageTextBox:TextField = new TextField();
    circle.addChild(pageTextBox);
    pageTextBox.text = "第"+(i+1)+"页(共"+totalPages+"页)";
    pageTextBox.background=true;
    pageTextBox.backgroundColor=0x00ffff;
    pageTextBox.height=pageTextBox.textHeight+2;
    pageTextBox.x=pageWidth/2;
    pageTextBox.y=swfLoader.y+pageHeight
    circle.addChild(swfLoader);
   }

}
  
  private function ioErrorHandle(event:IOErrorEvent) : void
        {
            trace(event.toString());
            return;
        }
  
  private function urlStreamOpenHandle(event:Event) : void
        {
            trace("open load::::::::" + event.type);
            return;
        }

}
}

anlin2.as

package
{
    import flash.events.*;
    import flash.net.*;
    import flash.utils.*;
    import flash.display.*;
    import flash.external.*;
    import flash.system.*;
 import flash.text.*;
 import fl.controls.*;
 import fl.events.ScrollEvent;
 
    public class anlin2 extends MovieClip//EventDispatcher
    {
        private var urlStream:URLStream;
  private var myFileReference:FileReference;
  private var circle:Sprite = new Sprite();
  private var myScrollBar=new ScrollBar();
  private var filedirTextBox:TextField = new TextField();
  
        public function anlin2(param1:Sprite = null, param2:Sprite = null)
        {
   addChild(filedirTextBox);
   filedirTextBox.type = TextFieldType.INPUT;
   filedirTextBox.text="若docin文件在不同目录需在此输入文件路径";
   filedirTextBox.border=true;
   filedirTextBox.background=true;
   filedirTextBox.backgroundColor=0xffffff;
   filedirTextBox.height=filedirTextBox.textHeight+4;
   filedirTextBox.width=300;
   filedirTextBox.x=50;
   filedirTextBox.y=300;
   filedirTextBox.addEventListener(FocusEvent.FOCUS_IN , filedirTextBoxfocusIn);
   
    var liulanButton=new Button();
   addChild(liulanButton);
   liulanButton.label = "浏览" ;
   liulanButton.width = 40;
   liulanButton.addEventListener(MouseEvent.CLICK, liulanButtonClick);
   liulanButton.move(filedirTextBox.x+filedirTextBox.width+5,filedirTextBox.y-2);
   
   var openButton=new Button();
   addChild(openButton);
   openButton.label = "打开" ;
   openButton.width = 40;
   openButton.addEventListener(MouseEvent.CLICK, openButtonClick);
   openButton.move(liulanButton.x+liulanButton.width+5,filedirTextBox.y-2);
   
   urlStream = new URLStream();
   urlStream.endian = Endian.LITTLE_ENDIAN;
            urlStream.addEventListener(Event.COMPLETE, completeHandle);
            urlStream.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandle);
            urlStream.addEventListener(Event.OPEN, urlStreamOpenHandle);
  }
  private function filedirTextBoxfocusIn(e:FocusEvent) : void//
        {
   if(filedirTextBox.text=="若docin文件在不同目录需在此输入文件路径")
   filedirTextBox.text="";
        }
  private function liulanButtonClick(e:MouseEvent) : void//“浏览”按钮
        {
   myFileReference = new FileReference();
            myFileReference.browse([new FileFilter("*.docin", "*.docin"),new FileFilter("*.*", "*.*")]);
   myFileReference.addEventListener(Event.SELECT, selectHandler);
        }  
  private function openButtonClick(e:MouseEvent)  : void//“打开”按钮
  {
   urlStream.load(new URLRequest(filedirTextBox.text));
   this.addChild(circle);
   circle.addEventListener(MouseEvent.MOUSE_DOWN, mouseDown)
   circle.addEventListener(MouseEvent.MOUSE_UP, mouseReleased);
   this.addEventListener(MouseEvent.MOUSE_WHEEL, mouseWheelHandler);
   circle.opaqueBackground =0x869ca7;
   var myButton=new Button();
   addChild(myButton);

myButton.label = "还原" ;
   myButton.width = 40;
   myButton.addEventListener(MouseEvent.CLICK, buttonClick);
   myButton.move(myButton.stage.stageWidth-myButton.width,0);
   trace(myButton.stage.stageWidth );
   
   myScrollBar.move(myButton.stage.stageWidth-15,myButton.height);
   myScrollBar.height=myButton.stage.stageHeight-myButton.height;
   myScrollBar.maxScrollPosition=100;
   myScrollBar.minScrollPosition=0;
   trace(myScrollBar.scrollPosition);
   addChild(myScrollBar);
   myScrollBar.addEventListener(ScrollEvent.SCROLL , ScrollBarScroll);
        }
        private function selectHandler(event:Event):void //文件成功选择
  {
            var file:FileReference = FileReference(event.target);
   filedirTextBox.text=file.name;
        }
  function ScrollBarScroll(event:ScrollEvent):void //滚动条
  {
   trace("ScrollBarScroll");
   circle.y=-(circle.height-myScrollBar.stage.stageHeight)*myScrollBar.scrollPosition/100;
  }
  private function buttonClick(e:MouseEvent) : void//“还原”按钮
  {
   circle.scaleX=1;
   circle.scaleY=1;
   circle.x=0;
   circle.y=0;
   myScrollBar.scrollPosition=0;
        }
  function mouseDown(event:MouseEvent):void //鼠标按下
  {
   circle.startDrag();
  }
  function mouseReleased(event:MouseEvent):void //鼠标松开
  {
   circle.stopDrag();
   myScrollBar.scrollPosition=-circle.y*100/(circle.height-myScrollBar.stage.stageHeight);
  }
  private function mouseWheelHandler(event:MouseEvent):void //鼠标滚轮放大
  {
   circle.height=circle.height*(1+event.delta/10);
   circle.width=circle.width*(1+event.delta/10);
  }
        private function completeHandle(event:Event) : void
        {
   var headerLen = this.urlStream.readUnsignedByte()+(this.urlStream.readUnsignedByte()<<8)+ (this.urlStream.readUnsignedByte()<<16)+(this.urlStream.readUnsignedByte()<<24);//0;
   trace("headerLen::"+headerLen);
   var tmpByteArray:ByteArray = new ByteArray();
   this.urlStream.readBytes(tmpByteArray,0,headerLen);
   //trace(tmpByteArray);
   var descriptionStr:String = "";
   var aa:int = 0;

while (aa < tmpByteArray.length)
   {
    descriptionStr = descriptionStr + String.fromCharCode(tmpByteArray.readUnsignedByte() - 99);
    aa++;
   }
   trace(descriptionStr);
   var headerXml = new XML(descriptionStr);
   var totalPages = headerXml.children().length();
   
   var tmpheight=0;
   var i=0;
   while(i<totalPages&&i<50)
   {
    var tempLoadCount = int(headerXml.children()[i].@size);
    var loc4:ByteArray = new ByteArray();
    this.urlStream.readBytes(loc4, 0, tempLoadCount);
    
    var swfLoader = new Loader();
    swfLoader.loadBytes(loc4);
    
    swfLoader.y=tmpheight;
    var pageTextBox:TextField = new TextField();
    circle.addChild(pageTextBox);
    pageTextBox.text = "第"+(i+1)+"页(共"+totalPages+"页)";
    pageTextBox.background=true;
    pageTextBox.backgroundColor=0x00ffff;
    pageTextBox.height=pageTextBox.textHeight+2;
    pageTextBox.x=int(headerXml[0].children()[i].@width)/2;
    pageTextBox.y=swfLoader.y+int(headerXml[0].children()[i].@height);
    
    circle.addChild(swfLoader);
    tmpheight=tmpheight+int(headerXml[0].children()[i].@height)+20;
    i++;
   }

}
  
  private function ioErrorHandle(event:IOErrorEvent) : void
        {
            trace(event.toString());
            return;
        }
  
  private function urlStreamOpenHandle(event:Event) : void
        {
            trace("open load::::::::" + event.type);
            return;
        }
 }
}

豆丁网缓存docin离线浏览(提供源码)修改,已更新相关推荐

  1. 微信小程序仿网易云音乐(使用云开发,提供源码)

    微信小程序仿网易云音乐(使用云开发,提供源码)!!!!!!!!!!! 源码: 链接:https://pan.baidu.com/s/1z_ZnRVbT4vjEENimi8yBQQ 提取码:u0o3 一 ...

  2. 类似爱美刻 右糖 轻剪辑 捷映 秀展网 秀多多 来画 创视网 传影 影大师 闪剪源码 技术源头 二次开发 提供源码 逗拍 趣推 飞推 美册 搞定视频 简影 剪影 爱字幕 幸福相册 八角星

    需要源码的下面评论 介绍 类似爱美刻 右糖 轻剪辑 捷映 秀展网 秀多多 来画 创视网 传影 影大师 闪剪源码 技术源头 二次开发 提供源码. 类似 逗拍 趣推 飞推 美册 搞定视频 简影 剪影 爱字 ...

  3. cesium等高线_Cesium开源三维地球离线地图发布源码示例功能

    一.概述 Cesium开源三维地球离线地图发布源码提供了地图切换.查询定位.模型加载.专题图叠加显示和测量功能等,旨在为用户提供一个可以在Cesium快速加载离线地图或在线地图的解决方案,并提供技术支 ...

  4. arcgis xml 下载 切片_arcgis api 4.x for js地图加载arcgisserver本地离线瓦片(附源码下载)...

    前言 关于本篇功能实现用到的 api 涉及类看不懂的,请参照 esri 官网的 arcgis api 4.x for js:esri 官网 api,里面详细的介绍 arcgis api 4.x 各个类 ...

  5. Cesium开源三维地球离线地图发布源码示例功能

    一.概述 Cesium开源三维地球离线地图发布源码提供了地图切换.查询定位.模型加载.专题图叠加显示和测量功能等,旨在为用户提供一个可以在Cesium快速加载离线地图或在线地图的解决方案,并提供技术支 ...

  6. 高仿砍柴网自媒体新闻资讯网站源码(织梦DEDE内核+手机WAP版)

    高仿砍柴网自媒体新闻资讯网站源码(织梦DEDE内核+手机WAP版)下载地址: http://download.csdn.net/detail/chenhao0568/9312019#comment 安 ...

  7. java验证码源码_Java通用验证码程序及应用示例(提供源码下载)

    评论 # re: Java通用验证码程序及应用示例(提供源码下载) 2009-11-27 17:09 零全零美 多谢博主写出这么好的总结,如果能加上汉字验证码,会更完美!  回复  更多评论 # re ...

  8. 黯然微信小程序杂记(二):小程序最新版登录并进行缓存模块的实现 附源码

    黯然微信小程序杂记(二):小程序最新版登录进行缓存模块的实现 附源码 一.功能描述 二.mine.wxml界面图片 三.mine.wxml代码 四.mine.wxss代码 五.mine.js代码 六. ...

  9. EntLib.com Forum – 开源ASP.NET论坛 v4.0(提供源码下载)

    EntLib.com Forum – 开源ASP.NET论坛 v4.0(提供源码下载)  EntLib.com Forum 开源ASP.NET 论坛系统是EntLib.com 小组基于YAF开源论坛进 ...

最新文章

  1. echarts迁徙图 vue_vue中高德搭配echarts做数据迁徙流线图
  2. VTK:Utilities之ArrayRange
  3. 【Solr】 solr对拼音搜索和拼音首字母搜索的支持
  4. 进阶阿里架构师:算法、编程语言、数据库、架构设计!书单推荐!
  5. (软件工程复习核心重点)第八章面向对象方法学-第四节:面向对象建模之动态模型和功能模型
  6. oracle建表 和 设置主键自增
  7. 解决IntelliJ IDEA 创建Maven项目速度慢问题 DarchetypeCatalog
  8. 用条件变量实现事件等待器的正确与错误做法
  9. 【java】java 安全 jaas 文件 何时 解析 以及 怎么解析的
  10. Java面经总结(1)
  11. 对称密钥与非对称密钥算法
  12. View事件分发相关结论的源码解析
  13. 对接支付宝流程【网页支付,手机网页支付,APP支付】
  14. 计算机笔记本电脑加固态硬盘,笔记本固态硬盘,教您怎么给笔记本加固态硬盘...
  15. 高效非支配排序ENS python版
  16. 数字视网膜图像血管分割
  17. 基于迭代情绪交互网络的对话情绪识别
  18. DirectX12 - Triangle Culling and Winding Order(三角形的剔除与绕序)
  19. [转]高精度乘法计算
  20. 经济数据预测 | Python实现CNN-LSTM股票价格预测时间序列预测

热门文章

  1. oracle number型步数,Android自定义View仿QQ计步器
  2. 创建简单的APAP/4程序
  3. 直呼内行!阿里大佬离职带出内网专属“高并发系统设计”学习笔记
  4. 消息摘要和数字签名(Java简单实现)
  5. 提取txt文件某一列数据,并保存为txt文件
  6. 一文普及Python语言的优缺点,不要错过哟!
  7. 编译linphone Android
  8. 计算机毕业设计 SSM法律知识教育平台 法律知识普及平台 普法知识平台Java
  9. html5篮球数据,我做了一个模拟篮球比赛的数据网页游戏
  10. java异步回调历程