ホームページ  >  記事  >  ウェブフロントエンド  >  ActionScript のような構文を使用して html5 を記述する - パート 9、URLLoader を模倣してファイルを読み取る

ActionScript のような構文を使用して html5 を記述する - パート 9、URLLoader を模倣してファイルを読み取る

黄舟
黄舟オリジナル
2017-01-17 17:00:171210ブラウズ

パート 9、URLLoader を模倣してファイルを読み取る

最初に最終的なコードを見てみましょう

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 はローカル ファイルの読み書きができますが、ブラウザのセキュリティ レベルを最低レベルに設定する必要があります。ただし、私たちが作成したゲームや Web ページはオンラインに公開する必要があり、それはできません。すべてのユーザーにこれを行うように要求します。

ここでは、PHP を使用してこのプロセスを実装します。PHP はユーザーのブラウザ設定に依存せず、fopen 関数だけでファイルを読み取ることができます。 file.phpのコード

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を置いた場所を指すように設定します

phpを呼び出すJavaScriptについては、もちろん記述できますそれほど複雑ではありませんが、私は非常に怠け者なので、jQueryを使用して直接呼び出しました。 jqueryとは何ですか?説明の必要はないと思います

LURLLoaderの構造については、基本的にLLoaderと同じですが、ロードメソッドが異なるだけです。 以下は、事前に用意したphpを呼び出すLURLLoaderクラスの完全なコードです。読み込むテキストを取得するには

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);
}
});
}
}
}

About 上記の例では、ボタンと LTextField を追加しました。以下のコードを参照してください

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;
}

上記は、ActionScript を模倣した構文を使用して html5 - その 9、URLLoader を模倣しています。ファイルの内容を読むには、PHP 中国語 Web サイト (www.php.cn) に注目してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。