Flashなブログ [ 動くWebは好きですか?]

過去の遺産としてページ自体は遺しております(※sampleリンク切れあり)Yahooブログが閉鎖とのこと、今までありがとう

過去の投稿日別表示

[ リスト | 詳細 ]

全1ページ

[1]

久々の記事だが、BLOG de GAMEの更新ではないところがイタい感じ…。すみません、年末進行の作業に追われ、ほとんど仕事以外の事を最近していないのです。…で、今日はFlashでスクリーンセーバー制作のお話を少し。

仕事でスクリーンセーバーを作るのは初めてではないが、久しぶり。注文内容は「1024*768をメイン解像度としてターゲットにしつつ、それよりも解像度が低い場合は画面サイズにそって縮小。それよりも高い場合は回りにマージンが付くように」との指示。

今回はFlashで作ったswfをscreentimeというソフトを通してスクリーンセーバー用インストーラを作成する手順。Flashで普通に作ったもの(もちろんスクリプトを入れたければ好きなだけ入れて良い)を、screentimeで選択してインストーラ作成を選ぶだけの簡単作業。ただscreentimeのMac用はMacOS9+OSX用のインストーラ作成しかできないので、Win用スクリーンセーバーを作りたければWin用のscreentimeを使うべし。

普通に作ったところ1024*768以上のサイズで見て拡大されてしまった。(*1)
また、次の手順でFlash内でスクリプト処理した(*2)ところ、拡大はされずにマージンがとれたが、白ではなく黒マージンが付いてしまった。今回のデザイン的に「白」が望ましいため、これはダメだ。(*3)

試行錯誤の末ようやく出来上がった。スクリーンセーバー再生のパネル設定において「フルスクリーン」を指定しておいたのだが、果たして合っているのだろうか。w

■Flashの中での拡大縮小の処理 *1

 Stage.scaleModeを使い拡大や余白の処理をする(この他にもexactFit/noBorderがあるが割愛)

Stage.scaleMode = "noScale"; // デザインサイズそのままに表示
Stage.scaleMode = "showAll"; // モニタ解像度(再生サイズ)にそって比率維持のまま拡大縮小
■モニタ解像度によって拡大縮小処理の分岐 *2 ※全角スペースで整形中

 System.capabilities.screenResolutionX:モニタ解像度(再生サイズ)の幅 単位:pixel
 System.capabilities.screenResolutionY:モニタ解像度(再生サイズ)の高さ 単位:pixel

fscommand("fullscreen", true);
w = System.capabilities.screenResolutionX;
h = System.capabilities.screenResolutionY;
if(w >= 1024){
 Stage.scaleMode = "noScale";
}else {
 Stage.scaleMode = "showAll";
}

※環境によって完全ではないが、MacとWinでは取得される数字が微妙に異なる場合があるらしい
■マージン黒問題

これはどうやら設定ではなく、screentimeの仕様らしい。スクリーンセーバー再生の設定で「ノーマルサイズ」を選んだとき、内容がそれよりも小さい場合に余白が付くが、OSX10.4使用時にマージンが黒になってしまう。これはscreentime3.xでは修正されているようだが、それ以下のバージョンでは現在回避不可能っぽい。(回避方法をもしご存知の方がいたら報告お願いいたします!)

そして背景やMCをモニタ解像度(再生サイズ)によって大きさ・位置など変更したい場合はリスナーを設定して処理させてみましょう。

■リスナー設定でサイズ変更による処理をさせる

myListener = new Object();
myListener.onResize = function(){
 // MCの大きさや位置などを整えるスクリプト処理
}
Stage.addListener(myListener);

開く トラックバック(1)

全1ページ

[1]


よしもとブログランキング

もっと見る

[PR]お得情報

ふるさと納税サイト≪さとふる≫
実質2000円で好きなお礼品を選べる
毎日人気ランキング更新中!

その他のキャンペーン


プライバシー -  利用規約 -  メディアステートメント -  ガイドライン -  順守事項 -  ご意見・ご要望 -  ヘルプ・お問い合わせ

Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved.

みんなの更新記事