Heim  >  Artikel  >  Web-Frontend  >  Verwenden Sie eine ActionScript-ähnliche Syntax zum Schreiben von HTML5 – Teil 9 und imitieren Sie URLLoader zum Lesen von Dateien

Verwenden Sie eine ActionScript-ähnliche Syntax zum Schreiben von HTML5 – Teil 9 und imitieren Sie URLLoader zum Lesen von Dateien

黄舟
黄舟Original
2017-01-17 17:00:171210Durchsuche

Teil 9, Nachahmung von URLLoader zum Lesen von Dateien

Werfen wir zunächst einen Blick auf den endgültigen Code

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

Im Grunde genommen Nachahmung von Actionscript.

Suchen Sie hier nach dem Effekt und Code. Wenn Sie den Effekt nicht sehen können, laden Sie bitte einen Browser herunter, der HTML5 unterstützt

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

Lassen Sie uns über den Implementierungsprozess sprechen
Tatsächlich kann ActiveXObject in JavaScript lokale Dateien lesen und schreiben, aber die Sicherheitsstufe Ihres Browsers muss auf die niedrigste Stufe eingestellt sein , aber was wir tun Spiele und Webseiten müssen online gestellt werden, und wir können auf keinen Fall von allen Benutzern verlangen, dies zu tun.

Hier verwende ich PHP, um Dateien auf dem Server frei zu lesen.

Dateien mit PHP lesen. Dies kann mit einer fopen-Funktion erfolgen. Das Folgende ist der Code von 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;

Fügen Sie dieses PHP an der gewünschten Stelle ein und legen Sie dann den Pfad LEGEND_FILE_PHP in legend.js fest, um darauf zu verweisen Du sagst es. Standort

Was den Javascript-Aufruf von PHP angeht, kannst du es natürlich selbst schreiben, weil es nicht kompliziert ist, aber ich bin eine sehr faule Person, deshalb verwende ich direkt jQuery Nennen wir es, jquery ist was? Ich denke, ich muss es nicht erklären

Was die Struktur von LURLLoader betrifft, ist sie im Grunde die gleiche wie LURLLoader, nur die Lademethode ist anders. Das Folgende ist der vollständige Code der LURLLoader-Klasse, der aufgerufen wird das zuvor vorbereitete PHP, um den zu lesenden Text zu erhalten.

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

In Bezug auf das obige Beispiel habe ich eine Schaltfläche und ein LTextField hinzugefügt ist die Verwendung einer ActionScript-ähnlichen Syntax zum Schreiben von HTML5 - Teil 9, die den URLLoader zum Lesen des Dateiinhalts imitiert. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn).

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

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn