2009-09-01 3 views
3

ファイルを開き、そのコンテンツをAS3のByteArrayとして取得するにはどうすればいいですか?私は、FileStream &のFlex.filesystemのファイルクラスを使用して例を見ましたが、ドキュメントではAIRのみが使用されています。AS3のローカルファイルを開く

おかげで、

ナバ

+0

あなたは一般的なもの以上のもので答えることができるようになる前に、もう少し詳しく知りたい質問をしました。これを行う多くの方法がありますが、それらはすべてユースケースの詳細に依存しています。どのようなコンテンツを読み込もうとしていますか(JPG、PNGなど)?あなたはそれを読み込んだ後、何をしたいのですか?最初にブラウズするようにユーザーに促していますか?だから、解決策をまだ見つけていないなら、アップデートをポストバックしてください。これまでに投稿された回答は、これらの欠落した詳細。 –

+0

私は、ローカルファイルセキュリティポリシーに関するKoenの答えにコメントを追加しました。 hth –

+0

私はshpバイナリファイルをロードしようとしていました。私の問題は、正しい場所に置かなかったということです...反対側から、Flexコンパイラがローカルファイルを開こうとするときにセキュリティ警告を発行するのは間違いありません。 FileRefrenceを使用して実装したとき、私はそれを開いてデータを読み取ることができました。 –

答えて

3

あなたがバイナリのためURLLoadercontentとセットのいずれかを試してみてください、またはURLStreamを使用することができます。あなたは何をロードする必要がありますか?

+0

返信いただきありがとうございます。ローカルバイナリデータファイル –

+0

をロードする必要があります。 urlloaderは次のようにします。var binLoader:URLLoader = new URLLoader(); binLoader.dataFormat = URLLoaderDataFormat.BINARY; binLoader.addEventListener(Event.COMPLETE、binLoaded);binLoader.load(新しいURLRequest( 'yourfile.bin')); –

+0

私はそれが私のせいで、コードがうまくいかないと思っています。私はファイルを見つけることができませんでした。なぜなら、私はMain.mxmlの近くにコードソースの近くに置かなかったからです。 –

2

フレックスセキュリティは、ローカルファイルへの簡単なアクセスを防ぎます。

最も一般的に使用される回避策は、ユーザーがファイルを選択してサーバーに送信し、サーバーからそのファイルをダウンロードさせる方法です。

設定の保存と読み取りに、(SharedObjectを使用して)ローカルストレージにアクセスできます。

HTH、

公園

+0

私は本当にこれがローカルになる必要があります。フレックスのローカルファイルを開くのはそれほど大したことですか?アーカイブにする必要がありますか? –

+0

ローカルファイルのみを使用している場合は、コンパイラ設定でコンパイラの引数として-use-network = falseを追加して、ローカルファイルセキュリティポリシーを使用するようにコンパイラを設定できます。がんばろう! –

4

あなたがファイルを参照して、「完全な」イベントが送出されたときのFileReferenceの「データ」プロパティを使用して生のバイトにアクセスするにはFileReferenceオブジェクトを使用することができます。

関連する問題