私はフラッシュゲームに取り組んでおり、コンテンツの一部はHTMLパラメーターに応じてWebページごとに異なる可能性があります。残念ながら、Google Chromeに画像を読み込んで、ビットマップ自体をステージに送信しようとすると、何も表示されません。これは、手動でインストールされたフラッシュプラグインで動作するため、Chromeに付属のPepperFlashプラグインが原因であることがわかりました。
私のゲームを使用するだけですでに必要だとユーザーが思っているプラグインをユーザーにダウンロードさせるのは、ユーザーにとって苦痛です。ビットマップは色が変わるため、ゲーム自体がビットマップにアクセスする必要があります。ChromeのPepperFlashプラグインの望ましくない動作を回避するにはどうすればよいですか?
以下は私がしていることのサンプルです。
private function init(e:Event = null):void
{
removeEventListener(Event.ADDED_TO_STAGE, init);
// entry point
//could be any image, as long as image1.jpg is in the images directory relative to the HTML page
//eventually will be taken from a parameter.
var url:String = "images/image1.jpg";
var request:URLRequest = new URLRequest(url);
loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loaded);
loader.load(request);
}
private function loaded(e:Event):void
{
image = Bitmap(loader.content);
image.bitmapData.colorTransform(new Rectangle(0, 0, image.bitmapData.width, image.bitmapData.height), new ColorTransform(2, 1, 0.5, 0.25, 10, 10, -10, -10));
graphics.beginBitmapFill(image.bitmapData);
graphics.drawCircle(stage.stageWidth/2, stage.stageHeight/2, (image.width + image.height) / 4);
graphics.endFill();
}
このサンプル以外の変換もありますが、このグリッチ/望ましくない機能/バグを回避する方法がない限り、ユーザーの作業なしに平均的なGoogleChromeブラウザーでゲームを正しくプレイすることはできません。