用仿ActionScript的语法来编写html5——第九篇,仿URLLoader读取文件

第九篇,仿urlloader读取文件

先看看最后的代码

  1. function readFile(){urlloader = new LURLLoader();urlloader.addEventListener(LEvent.COMPLETE,readFileOk);urlloader.load("../file/test.txt","text");}function readFileOk(){mytxt.text = urlloader.data;}

登录后复制

基本上已经实现了Actionscript的模仿了。

效果和代码看这里,看不到效果的请下载支持HTML5的浏览器

http://fsanguo.comoj.com/html5/jstoas09/index.html

立即学习“前端免费学习笔记(深入)”;

 

下面说说实现过程
其实JavaScript中的ActiveXObject是可以实现本地文件的读写的,但是你的浏览器的安全级别必须设定到最低,但是我们做的游戏和网页是要放到网上的,我们没有办法要求所有的用户这样做。

在这里,我用PHP来实现这一过程,php可以自由读取服务器上的文件,它并不依赖用户的浏览器的设定

用php读取文件很简单,一个fopen函数就可以搞定,下面是file.php的代码

  1. if(!file_exists($_POST["file"])){echo "";exit;}$file = fopen($_POST["file"],"r");$filemsg = "";while (!feof($file)) {$line = fgets($file);$filemsg = $line;}fclose($file);echo $filemsg;

登录后复制

把这个php放到你喜欢的位置,然后在legend.js里面设定路径LEGEND_FILE_PHP指向你放的位置

 

关于javascript调用php,当然可以自己写,因为它并不算复杂,但是我是一个很懒的人,所以我直接用jQuery来调用了,jquery是什么?估计不用我解释了吧

关于LURLLoader的构造,和LLoader基本一样,只有load方法不一样,下面是LURLLoader类的完整代码,里面调用了之前准备的php来获取要读取的文本

  1. function LURLLoader(){var self = this;self.objectindex = ++LGlobal.objectIndex;self.type="LURLLoader";self.loadtype = "";self.content = null;self.oncomplete = null;self.event = {};}LURLLoader.prototype = {addEventListener:function(type,listener){var self = this;if(type == LEvent.COMPLETE){self.oncomplete = listener;}},load:function (path,loadtype){var self = this;self.loadtype = loadtype;if(self.loadtype == "text"){$.post(LEGEND_FILE_PHP, {flg:"read",file:path},function(data){if(self.oncomplete){self.event.currentTarget = data;self.data = data;self.oncomplete(self.event);}});}}}

登录后复制

关于上面的例子,我加了一个按钮,一个LTextField,代码看下面

  1. init(40,"mylegend",600,500,main);var loadingLayer;var backLayer;var urlloadervar mytxt;function main(){legendLoadOver();var readBtn = addButton("读取",20);readBtn.= 10;readBtn.= 20;addChild(readBtn);readBtn.addEventListener(LMouseEvent.MOUSE_DOWN, readFile);mytxt = new LTextField();mytxt.= 10;mytxt.= 50;mytxt.text = "";mytxt.width = 300;mytxt.height = 200;mytxt.setType(LTextFieldType.INPUT);addChild(mytxt);}function readFileOk(){mytxt.text = urlloader.data;}function readFile(){urlloader = new LURLLoader();urlloader.addEventListener(LEvent.COMPLETE,readFileOk);urlloader.load("../file/test.txt","text");}function addButton(lbl,x){var up = new LSprite();up.graphics.drawRect(1,"black",[0, 0, 80, 20],true,"#999999");var txt = new LTextField();txt.= x;txt.text = lbl;up.addChild(txt);var over = new LSprite();over.graphics.drawRect(1,"black",[0, 0, 80, 20],true,"#cccccc");var txt1 = new LTextField();txt1.= x;txt1.text = lbl;over.addChild(txt1);var btn = new LButton(up,over);return btn;}

登录后复制

以上就是用仿ActionScript的语法来编写html5——第九篇,仿urlloader读取文件的内容,更多相关内容请关注PHP中文网(www.php.cn)!

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

点点赞赏,手留余香

给TA打赏
共0人
还没有人赞赏,快来当第一个赞赏的人吧!
    编程技术

    用仿ActionScript的语法来编写html5——终篇

    2025-4-1 8:32:02

    编程技术

    用仿ActionScript的语法来编写html5——第八篇,图片处理+粒子效果

    2025-4-1 8:32:19

    0 条回复 A文章作者 M管理员
    欢迎您,新朋友,感谢参与互动!
      暂无讨论,说说你的看法吧
    个人中心
    购物车
    优惠劵
    今日签到
    私信列表
    搜索