ステージ全体にマスクを
AS3.0を使ってステージのサイズと同じ長方形を描画し、それをマスクにすることでステージ外を表示しないようにしたいです。new Spriteで何とかなりそうだと思ったのですが、ステージと同じサイズの長方形を描く時点で挫折しました。
そこで、ムービークリップを作ってその中に長方形を描き、それを拡大(あるいは縮小)してからマスクにするのはどうだろうと考えましたが、ステージ全体にマスクをかける方法が分かりません。
アドバイス、よろしくお願いします。
(よりよい方法をご存知の方も、是非お願いします)
No.1ベストアンサー
- 回答日時:
ステージ(Stage / stage)にマスクをかけることはできません。
ヘルプ(ActionScript 3.0 言語およびコンポーネントリファレンス)で
mask を検索すると出て来る Stage のページにも
次のように書いてあります。
> 以下に示す継承プロパティは
> Stage オブジェクトに適用できません。
> これらを設定しようとすると、
> IllegalOperationError がスローされます。
> これらのプロパティは読み取ることはできますが、
> 設定することはできないため、
> 常にデフォルト値となります。
>
> ・ accessibilityProperties
> ・ alpha
> ・ blendMode
> ・ cacheAsBitmap
> ・ contextMenu
> ・ filters
> ・ focusRect
> ・ loaderInfo
> ・ mask
しかし ステージ(Stage/stage)ではなく,
root であればマスクをかけることはできます。
したがって 「いわゆるステージ全体」 にはマスクをかける ということはできると思います。
root とは,
この場合の Flash を起動して新規ドキュメントを作成したときに
すぐに見えるタイムライン(メインタイムライン)のことです。
その root のタイムラインのフレームに書くスクリプト例↓
----------------------------------
//マスクとなる矩形塗りを用意
var myMask:Shape = new Shape();
myMask.graphics.beginFill(0xFF0000);
myMask.graphics.drawRect(0, 0, stage.stageWidth, stage.stageHeight);
myMask.graphics.endFill();
//マスクとなる矩形塗りをstageに配置
//(矩形の座標をstageの左上で固定するため)
stage.addChild(myMask);
//root(stage の子0) に myMask のマスクをセット
stage.getChildAt(0).mask = myMask;
//↓上記の代わりにこれでも良い
//root.mask = myMask;
//↓また これでも良い
//this.mask = myMask;
----------------------------------
上記スクリプトの内容は
stage の直下に Shape(シェイプ) を配置し
root に Shape のマスクをかけるということです。
つまり
スクリプトによってムービーの構造を次のように変えたということです。
・スクリプト実行前の構造↓
stage
└root ( stage.getChildAt(0) )
・スクリプト実行後の構造↓
stage
├myMask (矩形のシェイプ)
└root ( stage.getChildAt(0) )
↓そして↓
root に myMask のマスクをかける
まったくの勘違いをしていました。
あろうことか、rootが使えなくなったのかと思っていたのです^^;
正直なところ、ヘルプからの引用文は半分も理解できていませんが、方法自体は丁寧に解説して頂いたので良くわかりました。
大変丁寧に教えていただき、ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 憲法・法令通則 マスクのお話 マスクは今推奨という形です。 「推奨(すいしょう)」は「物事や人物の優れている部分をあ 6 2022/04/25 12:49
- ディスカウントストア・ドラッグストア 小さめでおすすめのマスク教えてください。 私はダイソーに売ってる不織布マスクの小さめサイズ袋入りを使 1 2023/02/06 19:07
- 日用品・生活雑貨 マスクの顎下が余る人、(下顎よりもマスクの顎下部分の方が長い)って、顔大きいというか、顎が長い大きい 1 2022/10/16 10:18
- ライブ・コンサート・クラブ ZeppHanedaの見え方につきまして 1 2022/11/03 12:33
- がん・心臓病・脳卒中 統合失調症の薬と子宮体ガンの手術を拒否続ける妹に困り果ててます。 3 2022/08/07 15:58
- カップル・彼氏・彼女 彼への想い 3 2022/11/22 01:46
- 邦楽 トライセラトップスの和田氏が、泥酔したままステージに上がるミュージシャンを酷評してました。 誰のこと 1 2022/05/02 21:18
- パチンコ・スロット パチンコのステージ性能とは何ですか?ステージって日によって形が変わるものなんですか? 1 2023/03/23 23:59
- 画像編集・動画編集・音楽編集 ワード。頂点の編集。 4 2022/09/28 14:14
- X(旧Twitter) Twitterをやめるか続けるか悩んでます。 闘病中のアカウントで、ずっと励ましあいながら、続けてき 1 2022/10/23 11:51
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
photoshopで書いた四角の枠の中...
-
【VB.NET】別Formのボタンが押...
-
OpenGLのグラデーションについて
-
python ボタンを押すと複数の関...
-
指定したURLを開くアクショ...
-
'2465'指定した式で参照してい...
-
【ExcelVBA】ファイル名をセル...
-
C# chart controlの透過について
-
テキストボックスにセルの値を...
-
DelphiのRichEditでカーソル位...
-
VBAユーザーホームテキストボッ...
-
四乗根を英語で言うと・・・
-
テキストボックスの中身をリセ...
-
テキストエリア内の文字列にリ...
-
マウス自体の移動量の取得
-
VBScriptでMsgBoxのYesNoボック...
-
flash ブラウザのサイズに合わ...
-
別のアプリケーションのテキス...
-
シンボルをコピーしたい (Flash...
-
ムービークリップがループしません
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
photoshopで書いた四角の枠の中...
-
【Photoshop】レイヤー効果の境...
-
目と言う文字を記号で作る
-
画像ロールイン・ロールアウト
-
【Flash】マスクでスポットライ...
-
場面が移り変わるときかっこよ...
-
Flash パズル
-
PlgBltのマスク処理
-
画面に描画した場合の深度はど...
-
Flashでスタンドアーロン形式で...
-
植物が伸びていくようなアニメ...
-
マスクにグラデーションをかけ...
-
Photoshopの基本的な参考書を...
-
ポップアップ
-
画像を切り替える時のエフェク...
-
Flashコンテンツにz-indexは効...
-
ステージ全体にマスクを
-
テキストボックスの中身をリセ...
-
python ボタンを押すと複数の関...
-
変数に256文字以上のテキストを...
おすすめ情報