基本的にPHPを使って.swfファイルを編集したり、単一の変数を変更したり、もっと変更したりする方法が不思議でした。これをどうやってやりますか?マシンコードを知らずに編集する方法はありますか?PHPを使って.swfファイルに書き込む
これを行う方法の例がある場合、どこで見つけることができますか?
ありがとうございます!
また、これを行う簡単な方法がある場合は、教えてください。
基本的にPHPを使って.swfファイルを編集したり、単一の変数を変更したり、もっと変更したりする方法が不思議でした。これをどうやってやりますか?マシンコードを知らずに編集する方法はありますか?PHPを使って.swfファイルに書き込む
これを行う方法の例がある場合、どこで見つけることができますか?
ありがとうございます!
また、これを行う簡単な方法がある場合は、教えてください。
質問は古いですが、それは私が取り組んできたものと一致するので、私は他の人がそれが有用であると思うように何かを組み立てると考えました。このソリューションはAS3のみで動作します。インスタンス変数と定数の値を変更することができます。
あなたは以下のクラスがあるとします。
package pl.krakow.rynek {
import flash.display.Sprite;
public class Advertisement extends Sprite {
private var title:String = 'Euro 2012 LIVE!';
/* ... */
}
}
あなたが何か他のことにするVAR タイトルをしたいです。これを行うためのコードは次のとおりです。
<?php
require_once 'flaczki/classes.php';
// parse the SWF file, decoding only those tags needed by the injector
$input = fopen("input.swf", "rb");
$parser = new SWFParser;
$injector = new AS3ConstantInjector;
$swfFile = $parser->parse($input, $injector->getRequiredTags());
$classConstants = array(
'pl.krakow.rynek.Advertisement' => array(
'title' => 'Free Beer!'
)
);
// inject the values and reassemble the file
$injector->inject($swfFile, $classConstants);
$output = fopen($outPath, "wb");
$assembler = new SWFAssembler;
$assembler->assemble("output.swf", $swfFile);
?>
コードは自明です。 SWFファイルが最初に解析され、変更が加えられ、メモリ内構造がファイルに保存されます。 AS3ConstantInjector.inject()は、変更したいクラスの修飾された名前をキーにした配列の配列を2番目の引数として受け取ります。配列自体は、各クラスの新しい値を保持し、キーは変数/定数名として保持されます。
<?php
require_once 'flaczki/classes.php';
$input = fopen("button.swf", "rb");
$parser = new SWFParser;
$extractor = new AS3ConstantExtractor;
$swfFile = $parser->parse($input, $extractor->getRequiredTags());
$classConstants = $extractor->extract($swfFile);
print_r($classConstants);
?>
Flaczkiクラスはhttp://code.google.com/p/flaczki/downloads/list
でダウンロードすることができますがでプロジェクト開発ブログでFlaczkiフレームワークについての詳細を調べることができます、SWFファイル内の変数を参照してくださいAS3ConstantExtractorを使用するには
Actionscriptを使用すると、外部データを読み込むのが非常に簡単です。XMLとJSONは標準化された2つの方法であり、どちらもPHPで簡単に生成されます。あなたは正確に何をしようとしていますか?
私は、フラッシュファイルのコピーをダウンロードできるようにしようとしていますが、そのフラッシュファイルをダウンロードしたユーザーにカスタムにする必要があります。 (つまり、彼らはフラッシュロゴを作成し、今すぐ.swfをダウンロードできます) – Cyclone
カスタムアートワークを追加するだけですか? –
@cyclone:owkay私は...このように、生成するのはiddだけです... marbyはこれを質問に含めます。 –
チェックアウトSWF-libraryをで
PHPのドキュメントをlibmingを見てみましょうPHPスクリプトの外部ロジック。この方法では、swfを(再)コンパイルする必要はありません。
の代わりに、SWFファイルを生成し、反対を行うと、内部の挙動が依存するようにする方法を考えにhttp://docs.php.net/manual/en/book.ming.php
それは素晴らしいです、ありがとう! – Cyclone