ホームページ >ウェブフロントエンド >H5 チュートリアル >ActionScript のような構文を使用して html5 を記述する - パート 9、URLLoader を模倣してファイルを読み取る
パート 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) に注目してください。