首页前端开发HTML用仿ActionScript的语法来编写html5――第九篇,仿URLLoader读取文件

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

时间2024-01-26 11:08:02发布访客分类HTML浏览916
导读:收集整理的这篇文章主要介绍了html5教程-用仿ActionScript的语法来编写html5――第九篇,仿URLLoader读取文件,觉得挺不错的,现在分享给大家,也给大家做个参考。小宝典致力于为广大程序猿(媛)提供高品质的代码服务,请大...
收集整理的这篇文章主要介绍了html5教程-用仿ActionScript的语法来编写html5――第九篇,仿URLLoader读取文件,觉得挺不错的,现在分享给大家,也给大家做个参考。小宝典致力于为广大程序猿(媛)提供高品质的代码服务,请大家多多光顾小站,小宝典在此谢过。

 

第九篇,仿URLLoader读取文件

 

先看看最后的代码

 

www.2cto.COM

function reaDFile(){  

    urlloader = new LURLLoader();  

    urlloader.addEventListener(LEvent.complete,readFileOk);  

    urlloader.load("../file/test.txt","text");  

}  

function readFileOk(){  

    mytxt.text = urlloader.data;  

}  

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

 

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

 

https://fsanguo.comoj.com/htML5/jstoas09/index.html

 

下面说说实现过程

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

 

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

 

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

 

www.2cto.com

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来获取要读取的文本

 

www.2cto.com

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,代码看下面

 

www.2cto.com

init(40,"mylegend",600,500,main);  

 

var loadingLayer;  

var backLayer;  

 

var urlloader 

var mytxt;  

function main(){  

    legendLoadOver();  

     

    var readBTn = addButton("读取",20);  

    readBtn.x = 10;  

    readBtn.y = 20;  

    addChild(readBtn);  

    readBtn.addEventListener(LMouseEvent.MOUSE_DOWN, readFile);  

     

    mytxt = new LTextField();  

    mytxt.x = 10;  

    mytxt.y = 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 = 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 = x;  

    txt1.text = lbl;  

    over.addChild(txt1);  

    var btn = new LButton(up,over);  

    return btn;  

}  

 

 

over,模仿ActionScript读取文本文件完成了

 


 

 


摘自 lufy小屋

 

 

第九篇,仿URLLoader读取文件

 

先看看最后的代码

 

www.2cto.com

function readFile(){  

    urlloader = new LURLLoader();  

    urlloader.addEventListener(LEvent.COMPLETE,readFileOk);  

    urlloader.load("../file/test.txt","text");  

}  

function readFileOk(){  

    mytxt.text = urlloader.data;  

}  

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

 

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

 

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

 

下面说说实现过程

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

 

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

 

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

 

www.2cto.com

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来获取要读取的文本

 

www.2cto.com

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,代码看下面

 

www.2cto.com

init(40,"mylegend",600,500,main);  

 

var loadingLayer;  

var backLayer;  

 

var urlloader 

var mytxt;  

function main(){  

    legendLoadOver();  

     

    var readBtn = addButton("读取",20);  

    readBtn.x = 10;  

    readBtn.y = 20;  

    addChild(readBtn);  

    readBtn.addEventListener(LMouseEvent.MOUSE_DOWN, readFile);  

     

    mytxt = new LTextField();  

    mytxt.x = 10;  

    mytxt.y = 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 = 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 = x;  

    txt1.text = lbl;  

    over.addChild(txt1);  

    var btn = new LButton(up,over);  

    return btn;  

}  

 

 

over,模仿ActionScript读取文本文件完成了

 


 

 


摘自 lufy小屋

 

觉得可用,就经常来吧! 欢迎评论哦! html5教程,巧夺天工,精雕玉琢。小宝典献丑了!

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!

divHTMLhtml5jQueryletpost-format-gallerythis

若转载请注明出处: 用仿ActionScript的语法来编写html5――第九篇,仿URLLoader读取文件
本文地址: https://pptw.com/jishu/586680.html
用仿ActionScript的语法来编写html5――第七篇,自定义按钮 用仿ActionScript的语法来编写html5――终篇,LegendForHtml5Programming1.0开源库件

游客 回复需填写必要信息