2012-02-27 9 views
10

私はHTML5/JSで簡単なゲームを作りたいと思っています。ユーザーがウェブサーバーを実行したり、ウェブサイトに接続する必要はありません。 (ただのHTMLページ)サービスされていないページにJS/HTML5 FileReaderでファイルを読み込むことはできますか?

しかしFileReaderはファイルタイプの入力にしか使用できないようです。並んでindex.htmlをとfoo.txtの側面とのようなものとのindex.htmlからfoo.txtのを読むために:

// No input needed, I know waht I want to read 
var my_file = new File("foo.txt"); 
var reader = new FileReader(); 
alert(reader.readAstext(my_file, "UTF-8")); 

任意のアイデア

は、それだけで2つのファイルを持つことは可能ですか?

+0

'FileReader'と' File'はありませんJavaScriptビルトイン。同じ名前のJavaクラスがあります。 JVMに橋渡しをするアプレットや他のものと対話していますか? –

+0

ファイルがHTML5/JSゲームにどのように関係しているのか分かりません。ファイルを読み込んで、そのファイルがどのマシン上にあるのか、あなたが達成しようとしていることは何ですか? –

+7

@MikeSamuel 'FileReader'と' File'はHTML5以降のjavascriptの一部です:https://developer.mozilla.org/en/DOM/FileReader –

答えて

8

私はこれがあなたの答えであると信じています:How to open a local disk file with Javascript?要するに

、あなたはこのような何かを探している:

<input type="file" id="files" name="file" /> 

HTML5を使用すると、コンピュータ上でローカルに保存されたファイルを読み込むことができますが、あなたはできませんがそれを選択してください。ユーザーは、読み込みたいファイルを選択する必要があります。

ただ、これは古い問題であり、私は人々の多くはに実行したことを確信している

+0

これは私が恐れていたものです...だから私は複雑なゲームを(このように多くの動的なリソースを使って)このようにすることはできないと思います...私はウェブサーバー上でゲームをホストする必要があります内容に –

+0

はい、そのようなことにサーバーが必要です。その他のオプションは、ローカルサーバー上でウェブサイトを作成してから、リストされたソフトウェアの一部を使用して.exeファイルに変換することです(まだHTML5とは互換性がありません):https://www.google.com/search?client=opera&rls = en&q = make +ウェブサイト+スタナロン+実行可能&sourceid =オペラ&ie = utf-8&oe = utf-8&channel = suggest – DRAX

1

...開発者(またはより良い話され、ハッカーが)everyonesのローカルデータへのアクセス権を持っているだろうというとき何が起こるか想像JSがスタンドアロンアプリケーションになると、同じ問題が発生します(これは邪魔にならない厄介なことですが、JSアプリケーションはクライアントとサーバーの両方になると思います)。とにかくツール。

データをメンテナンス可能な方法で作成し、それを私が使用しているJavaScriptに渡す方法の1つは、一連のコンテンツファイルを取得し、大きな古いdata.jsファイルのJSONにコンテンツを解析する単純なスクリプトを書くことです。これは、通常のJavascriptオブジェクトと同じようにインクルードして動作させることができます。もちろん、JSONを使用して最初の場所にデータを格納することもできますが、アプリケーションのデータが多い場合は、単純なCSVよりも冗長です。

0

私はこの場合のチートコードを持っています。

私は.jsファイルとして私のJSONファイルの名前:文字列変数としての私のJSONデータが含まれてjsonfile.js、:、私はそれを私のindex.htmlで

var jsondata = '{ "foo" : "bar" }'; 

含める、と私の.js前にコード:

<html> 
<head> 
<script type="text/javascript" src="mydata/jsonfile.js"></script> 
<script type="text/javascript" src="js/mycode.js"></script> 

それから私はこのようなmycode.jsでJSONオブジェクトとしての私のデータを取得することができます。

var data = JSON.parse(jsondata); 
alert(data.foo); 
関連する問題