Ad
1: 2018-06-28 (木) 13:31:25 njf ソース バックアップ No.1 を復元して編集
Line 1: Line 1:
 +StarlingのRenderTextureはStarlingの描画オブジェクトを書き込めるテクスチャを作成するクラスです。
 + mainRenderTexture = new RenderTexture(200, 200);
 +
 + mainRenderTexture.draw(image); //StarlingのImageオブジェクトなどを書き込める。
 +
 + var mainImage:Image = new Image(mainRenderTexture);//Textureとして使える
 +
 +例えばゲームで背景をマップチップ画像から作りたいとき、StarlingのImageで製作してしまうと、Imageオブジェクトが大量にできてしまい、負荷が大きくなってしまいます。
 +
 +そんなときにRenderTextureを使うと、一枚の画像扱いになるので負荷が大幅に減らせます。
 +
 +つまり、AS3のBitmapdataのようなものと考えると良いでしょう。
 +
 +ただし、このRenderTextureはわかりにくいバグの原因になることがあります。
 +
 +RenderTextureのコンストラクタの定義は以下の通りです。
 +
 + RenderTexture(width:int, height:int, persistent:Boolean = true, scale:Number = -1, format:String = bgra)
 +
 +第四引数にscaleがあり、これを指定するとwidthとheightをscale倍したTextureを作成します。
 +これが縮尺にもかかわらずデフォルト値が-1となっています。これは-1を指定すると、「Starling.contentScaleFactor」を使うことになります。ちなみにこの事実は公式ドキュメントにも見あたらず、ソースを見ないとわかりません。また、Textureにも同じscale変数がありますが、デフォルトは1になっています。
 +
 +するとwidthなどに大きな値を入れると、Textureのサイズ制限(通常2048x2048)に引っかかって以下のようなランタイムエラーが発生します。
 +
 + ArgumentError: Error #3683
 +
 +Starling.contentScaleFactorは端末によって異なります。
 +
 +たまたまこれが大きな端末をテスト用に所持していないと、テスト時には気付かないエラーとなり、リリース後に問題が発覚することになります。
 +
 +対応が非常に面倒なエラーとなるので、RenderTextureを使う時は第四引数のscaleに必ず値を入れるようにしましょう。


トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード印刷に適した表示   ページ新規作成 全ページ一覧 単語検索 最新ページの一覧   ヘルプ   最新ページのRSS 1.0 最新ページのRSS 2.0 最新ページのRSS Atom Powered by xpWiki
Counter: 1711, today: 1, yesterday: 1
MenuBar
広告

ログイン

ユーザー名:


パスワード:





パスワード紛失

Portuguese | English | German | Greek | Japanese | Korean | Russian | T-Chinese top
NJF