• ベストアンサー

テキストフィールドを半透明にするには

noname#35109の回答

noname#35109
noname#35109
回答No.2

#1の方の(2)ほどハイテクニックではありませんが, 以下は,もっぱら私がよく使う方法です。 テキストはダイナミックテキスト,テキスト入力の場合です。 背景を文字よりも上のレイヤーにも, グラフィックシンボルもしくはムービークリップシンボルとして用意し, その文字より上のレイヤーの背景のアルファを 0%→100% と変化させます。 すると,テキストのアルファが 100%→0% に変化したように見えます。         アルファ0  →  →   100  □ レイヤー 筆・・|●>---------->|●| ←背景  □ レイヤー 筆・・|●/////////////[]| ←テキスト  □ レイヤー 筆・・|●/////////////[]| ←背景 ステージそのものを背景としている場合は, 背景を2重に用意する必要はなく, 例えば背景が白であれば, テキストエリアにかぶるくらいの白い塗りの長方形を用意して, それをグラフィックシンボルもしくはムービークリップシンボルにして, その白い長方形のアルファを 0%→100% と変化させます。 やっかいなのが, 「あけまして」と「おめでとう」のように複数のテキストエリアがあって, そのテキストエリアを順次消す場合ですが, この場合は,  □ レイヤー 筆・・|○     []|●>------->|●| ←背景  □ レイヤー 筆・・|●//////////////////[]|●| ←おめでとう  □ レイヤー 筆・・|●>------>|●///////////| ←背景  □ レイヤー 筆・・|●////////////////////[]| ←あけまして  □ レイヤー 筆・・|●////////////////////[]| ←背景 のようにします。 背景を切っても良い場合は, 文字にかぶさる部分の背景だけを切ってグラフィックシンボルもしくはムービークリップシンボルにして, 順次アルファを変えれば良いのですが, 素材などの場合は, 文字は外部テキストファイル,背景は外部JPEG,などで用意してもらい, それをロードする形になってしまいます。 その場合, 背景を切るわけには行かないので,上のように層状にします。 背景全体のアルファを変えるとどうしても動きが重くなりますから, なるべく避けたいですが, テキストが静止テキストでなく,ダイナミックテキストやテキスト入力の場合, #1の方の書かれている方法か,上記の方法というかなり無駄な労力が必要となります。 #1の方と同じく,静止テキストにしてデバイスフォント以外のフォントに設定することをオススメします。

is_may
質問者

お礼

詳しい説明ご苦労様です。 解決しました。ありがとうございました。

関連するQ&A

  • テキストフィールドのフォーカス設定について

    どなたかご存知でしたら是非ご教示ください。 インスタンス名が「id」というテキストフィールドをステージに配置します。 1フレーム目に、   Selection.setFocus("_root.id"); というスクリプトを書きます。 これで、再生したらテキストフィールドにフォーカスが設定されると期待しているのですが、そうなりません。 そこで、ボタン用のムービークリップを作り、ステージに配置(インスタンス名:focusSetButton)し、   _root.focusSetButton.onRelease = function() {     Selection.setFocus("_root.id");   } というスクリプトを1フレーム目に書きます。 これでムービーを再生してもフォーカスは設定されませんが、「focusSetButton」をクリックすると、フォーカスが設定されます。 ユーザーのアクションを伴わない場合は「Selection.setFocus」は無効で、ボタンクリックのようなユーザーアクションが伴うと有効になるのは何故なんでしょうか? また、ユーザーアクションが伴わずにフォーカスを設定する方法はあるでしょうか? 動作環境はWindows XP ServicePack 2のFlash 8です。 この現象は、アプリケーション上での再生でも、フラッシュファイル単体での再生でも、HTML内での再生でも起きます。 何かヒントになるようなことでもかまいませんので、よろしくお願いいたします。

  • ムービークリッププロパティの変更

    こんにちは。 ムービークリップA_mcをロールオーバーした時にムービークリップB_mcを表示ロールアウトした時にムービークリップB_mcを非表示にしたいのです。 まずはムービークリップB_mcの_alphaを100にするスクリプトを記述しようとしています。 B_mcはアニメーションですでに_alpha=0でステージにおかれています。 A_mcに on(rollOver){ _root.B_mc._alpha=100; } on(rollOut){ _root.B_mc._alpha=0; } と記述したのですが、表示されませんでした。 試しにと on(rollOver){ _root.B_mc._visible=true; } on(rollOut){ _root.B_mc._visible=false; } としてもだめでした・・・ すみません。原因がよくわからず対処方法もわかりません・・・何方かご教授頂けないでしょうか? よろしくお願いします。

    • ベストアンサー
    • Flash
  • 【ActionScript】ムービークリップ間の変数の受け渡しのやり方は?

    ムービークリップ間の変数の受け渡しがいまいちわかりません。 例えば、 ・_root.mc1 及び、 ・_root.mc1.mc2 というインスタンスがあった場合、 _root.mc1.mc2 のフレームに a = 100; と書き、 _root.mc1 のフレームに trace(_root.mc1.mc2.a); と書いても「undifined」と出るだけです。 (上層の値を下層で受けることはできるんですが、この例のように下層→上層の受け渡しはできないのです。) どうすればインスタンス間の変数の受け渡しができるのでしょうか。 よろしくお願いいたします。

    • ベストアンサー
    • Flash
  • キー操作その2の質問です

    困っています お久しぶりです。そして前回のご返答ありがとうございます。 おかげさまで一つ解決策が見つかった気がします。 言葉が曖昧すぎてしまい回答を息詰らせてしまうような文章ですみませんでした。前回の回答は本当に適切で助かっています。 Flash製作はまだ未熟なもので、Actionscriptをいまいち理解していないところがあるので、文章が不適切になってしまいもうしわけありませんでした。 しかしながら、今回の件は貴重な第一歩となり、とても感謝しています。 たびたびKey操作の質問なのですが、先日の回答でSPACEキーを押すとcapture_mcが左から右へ出てくるようにはなったのですが、 今度は同じステージ上で、「モーショントゥイーンで別のムービークリップが下から上へ」出るようにしたいのです。 BlurFiltanさんが教えてくださった前回のActionscriptを別のムービークリップ(インスタンス名alpha_mc)に添付してイベントを「this._x」から「this._y」に変え、 インスタンス指定をalpha_mcにし、初期値をY座標の値に変えてパブリッシュプレビューをしてみたところ、 なぜかステージ上にある「capture_mc」の座標が、alpha_mcのscriptで指定した座標に変わってしまい、alpha_mcのムービークリップはSPACEキーを押しても動かないのですが、これは何が原因なのでしょうか?

    • ベストアンサー
    • Flash
  • flash ウインドウの大きさを変更しても常に定位置

    falsh8でアクションスクリプトのバージョンは1でわからないことがあるので教えてください。 ステージ上に、 ムービークリップの インスタンス名 mc1 と ムービークリップの インスタンス名 mc2 と ムービークリップの インスタンス名 mc3 を配置しております。 ブラウザのウインドウの大きさを変更しても常に、 mc1 はウインドウの最上部に表示 mc2 はウインドウの中央部に表示 mc3 はウインドウの最下部に表示させたいのですが、どういうスクリプトを書けばよいでしょうか? 教えてください、よろしくお願いします。

  • 「.txt」に記入した、テキストとリンクURLをFlashに読み込む時に・・・

    こんにちは! Windows XP Flash MX 秀丸 「.txt」から  Flash内のテキストフィールドにテキストを  そのテキストの上に重なっているボタンインスタンスに  URLを指定させたいと考えています。 マウスが乗ったときにアクションの起こるボタンに、 外部からテキストとURAを設定したいということです。 ボタン構成は ボタンインスタンス「A」 ダイナミックテキスト「vtext」 ムービークリップ「B」ActionScript記入 ムービークリップ「over」マウスが乗った時のムービー まとめて「aaa」とシンボル化してあります。 「.txt」には以下のように記入 *** Index Setup *** &index=YAHOO!JAPAN& &url=http://www.yahoo.co.jp& &target=_blank& シーン1タイムライン1フレーム目には _root.aaa.A.onRollOver = function () { if (_root.aaa.overFlag != 1) { with (_root.aaa.over) { play(); } // End of with } // end if _root.aaa.overFlag = 1; _root.aaa.vText._x = -200; }; _root.aaa.A.onRollOut = function () { _root.aaa.overFlag = 0; _root.aaa.vText._x = 0; }; _root.aaa.A.onPress = function () { getURL(_root.aaa.A.url, _root.aaa.A.target); }; 「data」には onClipEvent (load) { if (_root.inText == null) { this.loadVariables("SingleButton_01a.txt"); } else { this.loadVariables(_root.inText); } // end if } この状態でターゲットパスを正確に記入しどの階層でも動くのですが、 シーン1のタイムライン上(どこでも)にstop();とアクションを記入 するとテキストのみが表示され、ボタンのリンクやムービーは止まってしまいます。この解決方法はないのでしょうか? よろしくお願いします。

  • loadMovieで外部swfの読込みについて

    現在、外部swfを連続で再生させるフラッシュを作成中です。 以下の方法で実現しています。 ------------------------------------------------- 親SWFの_rootに,例えば「loadMC」というインスタンス名のムービークリップを作ります。 このMCは小さくて透明のMCか,中に何も入っていない空のMCが良いと思います。 そして,親SWFのフレームのスクリプトに _root.loadMC.loadMovie("movie1.swf"); と書けば,「loadMC」というインスタンス名のムービークリップに「movie1.swf」が読み込まれます。 またはボタンにスクリプトを書いて,ボタンで読み込みをさせても良いです。 そして,「movie1.swf」の最終フレームに, _root.loadMC.loadMovie("movie2.swf"); と書いておきます。これで同じ「loadMC」に「movie2.swf」が読み込まれます。 同じ所に新たなムービーを読み込むと自動的に前のムービーは unload されるので, unloadMovie(); は必要ありません。 「movie2.swf」の最終フレームには _root.loadMC.loadMovie("movie3.swf"); 「movie3.swf」の最終フレームには _root.loadMC.loadMovie("movie4.swf");   …  … ------------------------------------------------- 作成後のプレビュー又はswfをダブルクリックなどで直接表示させると正常に表示されます。 しかし、HTMLに埋め込むと真っ白な状態でまったく表示されません。 調べているのですが原因がわかりません。 どなたかご教授のほど宜しくお願い致します。

    • ベストアンサー
    • Flash
  • ムービークリップとインスタンス

    「ライブラリ内にあるのがムービークリップで、それをステージに配置したものがインスタンスである。」このように理解しているのですが、これは間違いでしょうか? 1、「MCを一つ作成し、それをステージ上に3カ所に配置し、各"MC"に01、02,03とインスタンス名を付けた。」 2、「MCを一つ作成し、それをステージ上に3カ所に配置し、各"インスタンス"に01、02,03とインスタンス名を付けた。」 上記の場合どちらが正しいのでしょうか? ムービークリップとインスタンスについてご教授ください。 よろしくお願いします。

    • ベストアンサー
    • Flash
  • カーソルのカスタム

    flash ver.9 AS2.0 使用です。 カーソルを自分で制作したムービークリップ(MC)にする方法を教えていただきたいです。 MCに直接スクリプト onClipEvent (mouseMove) { _x = _root._xmouse; _y = _root._ymouse; } を書く方法は分かるのですが、 知りたいのは フレームアクションで制御する方法です。 多分、とても初歩だと思うのですが、よろしくお願いします。

    • ベストアンサー
    • Flash
  • ActionScript 孫のパス

    こんにちは。 今Flashを編集しているのですが、(初心者です) ┏━━━━━━━┓ ┃┌─────┐┃ ┃│ mc1_1    │┃ ┃└─────┘┃ ┃           ┃ ┗━━mc1━━━┛ mc~はムービークリップのインスタンス名です。 上のようにmc1の中にさらにmc1_1というムービークリップがある、という形です。 「_root.mc1.mc1_1.onRollOver~」のように指定したイベントが動きません。 (onReleaseも同様) 「_root.mc1.onRollOver~」は正常に動きました。 ただし、 「_root.mc1.mc1_1._visible = ~」のように書くと、ちゃんと動作していました。 この場合どういった原因が思い当たりますか? パスが間違っているんでしょうか… ちなみにCS3、ActionScript2.0です。 よろしくお願いします。