FlashのActionScript3.0で複数のグラデーションマスクをかける方法はあるのか?

このQ&Aのポイント
  • cacheAsBitmapを利用して単一のグラデーションマスクをかける方法は分かったが、複数のインスタンスでの実装方法が分からない。
  • 参考にしたサイトでは、複数のマスクをかける際に問題が発生しており、正しい方法がわからない。
  • インスタンスを複数設定しても、グラデーションマスクがかからずに動いてしまうため、解決策が必要。
回答を見る
  • ベストアンサー

FlashのActionScript3.0で質問です。

FlashのActionScript3.0で質問です。 cacheAsBitmapを利用して複数のグラデーションマスクをかける方法はあるのでしょうか? いろいろと調べてみて、グラデーションマスクを1つだけだったら、下記の方法でかけることができました。 参考: http://blog.room-no1102.net/?p=43 mask_mc.cacheAsBitmap = true; txt_mc.cacheAsBitmap = true; mask_mc.mask=txt_mc; しかし、インスタンスを複数設定して、下記のようなスクリプトだと、グラデーションマスクがかからずに動いてしまいました。 mask_mc01.cacheAsBitmap = true; txt_mc01.cacheAsBitmap = true; mask_mc01.mask=txt_mc01; mask_mc02.cacheAsBitmap = true; txt_mc02.cacheAsBitmap = true; mask_mc02.mask=txt_mc02; どうぞよろしくお願いします。

  • Flash
  • 回答数1
  • ありがとう数4

質問者が選んだベストアンサー

  • ベストアンサー
  • BlurFiltan
  • ベストアンサー率91% (1611/1754)
回答No.1

Flash Player のバージョンを書かれていませんが, Flash Player 9 用 でも Flash Player 10 用 でも ちゃんと「マスクMC」に「テキストMC」のマスクはかかりましたよ。   わかりにくいかもしれませんが    ↓参考:添付した図↓   ただ思うだけで, 決して間違ってはいないことなのですが インスタンスのネーミングが逆だと思います。 「何が正しい」ということはないので何とも言えませんが 私の感性とは全く逆です。 普通の感性では 「マスクMC」に「テキストMC」のマスクをかけるのではなく 「テキストMC」に「マスクMC」のマスクをかけませんでしょうか? 次のようにするのが普通だと思います↓。 mask_mc01.cacheAsBitmap = true; txt_mc01.cacheAsBitmap = true; txt_mc01.mask=mask_mc01; mask_mc02.cacheAsBitmap = true; txt_mc02.cacheAsBitmap = true; txt_mc02.mask=mask_mc02; 実は, 最初書かれている通りにやってみたつもりだったのすが, 感性がズレていたため(逆だったため) 「何じゃこりゃ?」状態のものができてしまいました。 よーーーくスクリプトを見直してみて 『「マスクMC」に「テキストMC」のマスクをかけるのか!』 と気付いて作り直したのが下の結果です。 ですから下の図は「一応できている状態」ですが,私の感性とはズレています。

gamips007
質問者

お礼

ありがとうございます。 試してみたらできました!

関連するQ&A

  • FlashのActionScriptについて質問です。

    FlashのActionScriptについて質問です。 Flash CS4のAS2.0を使用 ActionScriptの書き方で (1)ボタンインスタンスに書く (2)対象のインスタンスのフレームに書く (3)ActionScript専用のフレームを作成しそこへ書く 参考書等を読んでいるとActionScriptを書くときに、上記3つの方法が あり混乱しています。 それぞれ、どのような違いがあるのでしょうか?また、どのように使い分けるのでしょうか? Flashに関しては、始めたばかりの超初心者です。どうぞ宜しくお願いします。

  • グラデーションマスクにトゥイーンをかけても動かない

    すみません。 flash制作をしていてグラデーションマスクをしても動かないので 恐縮ですがご教授お願いします。 文字がだんだん表示されていって、まただんだん消えていくいうものを作りたく、 ネットで調べ、グラデーションマスクはかかるのですが、マスクのターゲットされているものがモーショントゥイーンをかけても動きません。 レイヤー構造は以下になります。 //////////////////////////// AS    :@ マスク  :●●● ターゲット:●→● 背景   :●●● マスクのインスタンス名:mask_mc ターゲットのインスタンス名:target_mc アクションスクリプト: mask_mc.cacheAsBitmap = true; group_mc.cacheAsBitmap = true; group_mc.setMask(mask_mc); //////////////////////////// 上記でグラデーションマスクはかかるのですが、トゥイーンしているターゲットが動かないのです。 フラッシュのバージョンはcs4です。 どなたかご教授お願いします。

    • ベストアンサー
    • Flash
  • FlashのActionScriptについて

    FlashのActionScriptについて質問です。 Yesか Noを選択する、診断テストみたいなフラッシュを作りたいのです。 1フレームには一番はじめの Yes Noが表示されています。 それのどちらかのボタンをクリックするまで、次のフレームに流れないようにするには、 1フレーム目にstop();でよいのでしょうか? それとも、sotoAndstopとかなのでしょうか? また複数のレイヤーがあるときstop();などのアクションスクリプトは 全部につけなければいけませんか?

  • Flash(ActionScript3.0)

    Flash(ActionScript3.0)でゲーム制作を行っています。 ActionScriptもFlashも最近初めて触れた初心者で、分からないことがたくさん湧いてきて困っています。 よろしければご回答お願い致します。 インスタンスをドラッグすることができる、という要素と、 インスタンスをクリックすると45度回転する、という要素を同時に入れたいのですが、 同時にプログラムを組むとドラッグだけをすることができず、 どうしてもドラッグ後に45度回転してしまいます。 (プログラムのソースはネットから拾ってきたものです)。 どうすればドラッグと回転を分けることができるのでしょうか。 プログラム自体は以下のように組みました。 ご回答いただければ嬉しいです。 よろしくお願い致します。 //インスタンスの回転プログラム mc1.addEventListener(MouseEvent.CLICK, kaiten); function kaiten(event:MouseEvent) { mc1.rotation += 45; } //インスタンスのドラッグプログラム //インスタンスの0点からのマウス座標用変数 var mc1X:int; var mc1Y:int; //マウスがインスタンスを押したらsec1開始 mc1.addEventListener(MouseEvent.MOUSE_DOWN,sec1); //sec1 マウスダウン座標確認、sec2開始 function sec1(event:MouseEvent):void { mc1X = event.localX; mc1Y = event.localY; addEventListener(MouseEvent.MOUSE_MOVE,sec2); } //sec2 インスタンス移動 function sec2(event):void { mc1.x = mouseX-mc1X; mc1.y = mouseY-mc1Y; //低FPSマウス移動スムーズ対応 event.updateAfterEvent(); } //マウスが離れたらsec3開始 stage.addEventListener(MouseEvent.MOUSE_UP,sec3); mc1.addEventListener(MouseEvent.MOUSE_OUT,sec3); //sec3 sec2停止 function sec3(event):void { removeEventListener(MouseEvent.MOUSE_MOVE,sec2); }

  • FlashのActionScriptについて

    FlashのActionScriptについて Flash CS4(AS2.0)を使用 Flashに関しては初心者で、色々な参考書を見ている中で、 AkutionScriptの書き方に色々なパターンがあって分からなくなりました。 アクションを書き込む際、 (1)専用のActionScriptのフレームを作成してそこに書く (2)ボタンインスタンスに書く (3)対象のシンボルのフレームに書く 上記3つの方法はそれぞれどのような違いがあるのでしょうか?又、どのようにして 使い分けするのでしょうか?

  • ActionScriptエディタを作りたい!です…

    毎度お世話になっておりますsassakunと申します。 変な回答をすることがありフォローを入れていただきありがとうございます。 Flashカテゴリでの質問は初心者です。 訳あってActionScriptエディタを作成中です。 「Flash Player de ActionScript」(今閃いた仮称)。 大した物ではないです。 テキストエディタでスクリプトを作る事が多々あるのですが,定型句みたいなものをキーボードを叩くのが面倒です。 またifをIFと書いてしまったり書き間違いが多いです。 蛇のアイコンのソフトも知っていますが,あれはFlashより使い勝手が悪い。 それなら自分で作ってしまおうと思ったのです。 TXTという変数名のダイナミックテキストエリアを作成し,あるボタンをクリックすると,そのボタンのスクリプトで  on (release) {   TXT = TXT + "ActionScript(値)"  } みたいなスクリプトで, 変数TXTにどんどんスクリプトを加算していく方法で大体はできました。 大体と言うのは自分がよく使うスクリプトの範囲内という意味です。 でも上のスクリプトだとどうしても文字列の後に,"ActionScript(値)" が付いてしまいます。 そうではなくて,  onClipEvent (load) {  | (←マウスカーソルのつもり)  } のカーソル部分に _root.stop(); などというスクリプトが入れたい場合が多々あります。 タグ挿入型HTMLエディタならぬ,Script挿入型ActionScriptエディタです。 イメージをスクリプトにするなら, on (release) {  TXT1 = TXT の1文字目からカーソルまで;  TXT2 = TXT のカーソルから最終文字まで;  TXT = TXT1 + "ActionScript(値)" + TXT2; } みたいな感じです。 これを実現するActionScript,または方法はあるのでしょうか。 そんなことも知らないのか! などと思われそうな気もしますが,ここでの質問は初心者ですのでよろしくおねがいします。

    • ベストアンサー
    • Flash
  • actionscript3.0について教えてください。

    actionscript3.0について教えてください。 Flash CS4で、マウスオーバーすると画像が表示するものを制作しました。 (全レイヤー、1フレーム目のみで制作していました) そして最近その以前制作したものの直前に別のムービーを入れることになり、 画像のように1フレーム目から4フレーム目まであけました。 そしてもともとあったフレームをすべて5フレーム目に移動しました。 すると、エラーが出るようになりました。 5フレーム目に移動するとエラーが出るようになってしまったので、 試しに2フレーム目、3フレーム目など試しましたが同じくエラーが出ました。 エラーの内容は TypeError: Error #1009: null のオブジェクト参照のプロパティまたはメソッドにアクセスすることはできません。 at test_fla::MainTimeline/frame5() です。 下記のスクリプトを上から二つ目のレイヤーに記述しています。 一番上のレイヤーには、stop();と記述しています。 超初心者のため説明不十分かもしれませんが、宜しくお願いいたします。 /*ボタン1 */ nav1txt_mc.visible = false; nav1_btn.addEventListener(MouseEvent.MOUSE_OVER,onMouseover); function onMouseover(e:MouseEvent):void{ nav1txt_mc.visible = true; nav1txt_mc.gotoAndPlay("nav1txt_mc"); } nav1_btn.addEventListener(MouseEvent.MOUSE_OUT,nondisplay); function nondisplay(e:MouseEvent):void{ nav1txt_mc.visible = false; } /*ボタン2*/ nav2txt_mc.visible = false; nav2_btn.addEventListener(MouseEvent.MOUSE_OVER,onMouseover2); function onMouseover2(e:MouseEvent):void{ nav2txt_mc.visible = true; nav2txt_mc.gotoAndPlay("nav2txt_mc"); } nav2_btn.addEventListener(MouseEvent.MOUSE_OUT,nondisplay2); function nondisplay2(e:MouseEvent):void{ nav2txt_mc.visible = false; } /*ボタン3*/ nav3txt_mc.visible = false; nav3_btn.addEventListener(MouseEvent.MOUSE_OVER,onMouseover3); function onMouseover3(e:MouseEvent):void{ nav3txt_mc.visible = true; nav3txt_mc.gotoAndPlay("nav3txt_mc"); } nav3_btn.addEventListener(MouseEvent.MOUSE_OUT,nondisplay3); function nondisplay3(e:MouseEvent):void{ nav3txt_mc.visible = false; } /*ボタン4*/ nav4txt_mc.visible = false; nav4_btn.addEventListener(MouseEvent.MOUSE_OVER,onMouseover4); function onMouseover4(e:MouseEvent):void{ nav4txt_mc.visible = true; nav4txt_mc.gotoAndPlay("nav4txt_mc"); } nav4_btn.addEventListener(MouseEvent.MOUSE_OUT,nondisplay4); function nondisplay4(e:MouseEvent):void{ nav4txt_mc.visible = false; } 宜しくお願いいたします。

    • ベストアンサー
    • Flash
  • flash ActionScript textファイルの文字列の置換

    お願いいたします。 flash ActionScript2.0 で、外部で読み込んでいるtxtファイル内の「,」半角カンマの表示を、swfファイルで「全角(半角)スペース」に置き換えて表示させたいのですが、その場合どのようなScriptを記述すればよいのですか? 現在→ ムービークリップに対して、 onClipEvent (load) { this.loadVariables("flash.txt"); } というActionScriptを記述して、flash.txtという外部ファイルを読み込んでいます。 そこまでは、問題なくできたのですが、 flash.txtファイル内「,」半角カンマの表示を、swfファイルで「全角(半角)スペース」に置き換えて表示させるscriptがわかりません。 教えて下さい。お願いいたします。

    • ベストアンサー
    • Flash
  • Flash初心者のactionscript3.0の質問です。

    Flash初心者のactionscript3.0の質問です。 解説書の作例をもとに、20点並んだサムネイル画像(ボタン)をクリックするとそのメイン画像が表示されるフォトギャラリーを作成。 不明な点は、サムネイルボタンのインスタンス名の二桁までの番号を数値判断するためのスクリプトの記述をお教えください。 ちなみに作例では画像が一桁(8点)なので[charAt]メソッドを使用です。画像はXMLで読み込みです。 初歩的すぎる質問かもしれませんがよろしくお願いいたします。

    • ベストアンサー
    • Flash
  • Flash ActionScript3.0 クラスの使い方について

    Flash ActionScript3.0 クラスの使い方について お世話になっております。 Flash ActionScript3.0でコンテンツを制作しているのですが、 そのコンテンツにローディングアイコンを実装したく、検索エンジンにて探した結果以下のサイトが見つかりました。 ◆[actionscript3.0]ローディングアイコン生成用のクラス http://blog.wonder-boys.net/?p=379 非常に使い勝手がよさそうで実装を試みたのですが、 上記サイトに書いてあります、 「クラスを初期化してステージに配置する」 という表現がわかりません。 そもそもクラスというのはどのようにして使えるものなのでしょうか? 【ファイル】→【新規】→【ActionScript3.0 クラス】 という方法でクラスの生成の仕方はわかったのですが、 それをどこに保存し、どのようにFLAファイルに適応させるかがわかりません。。。 具体的な作業を教えていただけましたら幸いです。 Flash CS5 ActionScript3.0 を使用しております。 宜しくお願いいたします。

専門家に質問してみよう