2012-05-03 9 views
0

表示オブジェクトのビットマップを描画した後、ビットマップとテキスト入力をローカルに保存し、保存している間にFlash Playerが表示するシステムダイアログを避ける必要があります。これはPHPで実現できますか?私はAirがこの仕事をかなり効果的に処理していると読んだことがありますが、私はどちらのプラットフォームでも未経験です。どんな助けでも大歓迎です!ありがとう...AS3とPHP ...スクリーンショットをローカルに保存し、システムダイアログを避けますか?

+0

それはまた、ダウンロードダイアログを避けるべきでしょうか?あなたがブラウザにいれば、少なくとも1人のユーザーのやりとりが必要であると思います。ちょうど安全上の理由から。 – Sidrich2009

+0

ユーザ用に保存する必要がありますか、ローカルのSharedObjectで十分でしょうか? –

+0

最終出力は、Windows用プロジェクターアプリになります。これは本質的に写真を撮ってフレームに入れて、それをローカルに保存して後日に覗くことができる、博物館に設置された素晴らしい外観の写真ブースアプリです。 – MaxG

答えて

2

できません。 Webアプリケーションが許可なくローカルシステムにデータを保存できるようにすることは、セキュリティ上の大きなリスクです(システムにスパイウェアを保存する正当なWebアプリケーションを書くことができます)。 Flashではこのような理由でこれを禁止しています。

デスクトップベース(AIR)アプリはFileMode.WRITEモードでFileStreamを開き、ユーザーからのプロンプトなしでデータを書き込みます。

EDIT デスクトップベースのアプリを探しているので、ここでいくつかのポインタがあります:

var randomname:String=Math.floor(Math.random() * 1024).toString(16) + ".png" 
var f:File=File.desktopDirectory.resolvePath("photos/" + randomname); 
var s:FileStream=new FileStream(); 
s.open(f, FileMode.WRITE); 
s.writeBytes(bytesArray); //bytesArray contains the binary data to write to the file 
s.close(); 
+0

ありがとうございました...これは、デスクトップベースのアプリです... AIRです! – MaxG

+0

@MaxG:次回は、タグにもAIRを含めることができます。 –

+0

@kubarium:次回は、このコメントを質問に投稿したいと思うかもしれません:) –

0

そのためにはFileReference.save()を参照してください。
はい、ユーザーとのやりとりが必要です(そうでない場合は悪夢です)。

AIRとFileStreamクラスを使用したくない場合は、これが唯一のオプションです。
AIRファイルapisにはそのような制限はありませんが、デスクトップアプリケーションを実行する必要があります。

まあ、ローカルのSharedObjectを使用してデータを保存することはできますが、この場合はAMFでエンコードされます。これは、AIRアプリケーションとWebアプリケーションの両方で動作します。

+0

ありがとう...私はトリッキーにする必要があります。これは公共のインストールであるため、私はシステムのダイアログをすべての費用で避けなければなりません。ブラウザベースではありません。 – MaxG

+0

上記のように、AIRアプリケーションでFileクラスとFileStreamクラスを使用します。 AIRを使用してローカルファイルを読み込んで保存するためのチュートリアルについては、簡単にgoogleを参照してください。あなたは必要なものを手に入れることができます:ローカルファイルシステム上のほぼどこでもファイルを保存するためのダイアログや能力はありません。 –

+0

ありがとう、私は潜入する! – MaxG

関連する問題