• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:MovieClip上のComboBoxを透過させる方法)

MovieClip上のComboBoxを透過させる方法

このQ&Aのポイント
  • FlashCS3でActionScript3.0を使用してコンテンツを作成している際に、MovieClip上のComboBoxを透過させる方法について調査しています。
  • 通常、MovieClip上で他のオブジェクトを配置し、親オブジェクトの透明度を0にすると、子オブジェクトも透明になりますが、ComboBoxの場合、選択状態のスキンやドロップダウンスキンは透明度の影響を受けずに表示されてしまいます。
  • 関連する情報や解決策についてのヒントやサイト、書籍などを教えていただけると助かります。

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

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

CS3 は使用していないので,実際にできるかどうか, また, 下に書くことの操作方法が若干違っているかもしれませんが, できるであろうと推測される方法を書きます。 MC_A のアルファを 0 にする(変化させる)とともに, MC_A を選択して下のプロパティパネルの「フィルタ」タブを選択し, +ボタンをクリックして「カラー調節」を選択。 明度 や コントラスト や 彩度 などの数値はさわらずそのままの状態(0のままの状態)で, つまり, フィルタをかけると思いきや,実際にはフィルタの数値などは変えないという状態で, パブリッシュすると文字にもアルファがかかると思います。 (数値は変えなくても良いという意味で,変えてもかまいません。 数値は変えても変えなくてもどちらでも良いのでフィルタをかけるということが肝心です。) 結局, FlashPlayer 中に埋め込まれていない文字(デバイスフォント)は, FlashPlayer中に画像データ(イメージ)として存在しません。 デバイス(PCなどの機械)のフォントデータを参照してFlashPlayer上に表示させているだけです。 FlashPlayer中に画像データ(イメージ)として存在しないものにアルファのような処理ができないようです。 しかし, なにがしかのフィルタをかけると, > データを特定の方法でフィルタするアルゴリズムを使用して > オブジェクトのイメージデータを渡すことから、フィルタと呼ばれます。 (↑ヘルプより引用) ということで, 埋め込まれていないフォントデータに特定の方法でフィルタするアルゴリズムが適用されて, フォントデータがイメージデータとしてFlashPlayer内に残るようです。 内部のアルゴリズムの詳しい所まではわかりませんが, とにかくフィルタをかけるとデバイスのフォントがFlashPlayer中で画像データとして存在するようになるのでアルファがかかるようです。

pngchan
質問者

お礼

BlurFiltanさん 早速のご回答有難うございます。 まだ試していないのですが、納得のご意見です。 実はUIコンポーネントのLabelに関しても、MC_Aを透過させても文字は透過されないままでした。 BlurFiltanさんが仰るFontの件が実によく当てはまります。 有難うございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • ActionScript3のMovieClipについて

    メインのタイムライン上に動的に配置したMovieClip(a_mcとb_mcの2つ)がある場合、 a_mc内に配置したボタンからメインのタイムラインのラベル移動(gotoAndPlay)をさせたいのですが、このような操作は実現可能なのでしょうか。 また、a_mcからb_mcの表示位置の変更(b_mc.xやb_mc.alphaなど)を変更することはできるのでしょうか。 ちなみにメインのタイムライン上で var a_mc:a_movieclip = new a_movieclip(); var b_mc:b_movieclip = new b_movieclip(); addChild(a_mc); addChild(b_mc); としてMovieClipを作成しております。 開発環境は VISTA FlashCS3 ActionScript3 です。 いろいろと調べてみたのですが、 http://www.chimanaco.net/blog/archives/20081105113240.php が使えそうなのでしょうか… 大変申し訳ありませんが、ご回答をお願いいたします。

    • ベストアンサー
    • Flash
  • 子MCから別の子MCを参照する方法

    環境はFlashCS3・CS5でAS3です。 親MCにクラス名をつけてリンケージして親MCをステージに配置しています。 親MCには子MCがいくつか入っています。 ここでは子MCA・Bとします。 その時、子MC Aのタイムラインのどこかで 子MC Bを参照したいのですが、Bが未定義ですから 参照できませんと言われてしまいます。 参照するために使っているスクリプトは this.parent.子MCBと言った参照方法を取っています。 オブジェクトや変数の参照でも同じエラーになりましたが、 この時は親側から子に値を与える形に変えて解決しました。 実際に子から親に行き、また別の子を参照する方法はあるのでしょうか? よろしくお願いします。

    • ベストアンサー
    • Flash
  • flash comboBox

    flash CS3にてコンポーネントのcomboBoxをステージに配置し、 アイテムの追加等必要な設定を一通り行い、書き出すと正常に動作しています。 (この時書き出したswfを「xyz.swf」とします) 現在制作中のコンテンツの構成が次のようになっており メインのflashである「aaa.swf」内で 「bbb.swf」を読み込み、更に 「bbb.swf」内で「xyz.swf」を読み込んでいます。 「xyz.swf」を単体で見たときcomboBoxは正常に動作するのですが、 上記のようにswfを別のswf上に読み込んだ時、全く同じ物(xyz.swf) にもかかわらずcomboBoxが動作しません。(汗) 具体的には、comboBoxをクリックすると通常は登録されたItemがプルダウンメニューで表示されるのですが、 クリックしてもプルダウンメニューが表示されず何の反応も無いという状態です。 メインのswfから別のswfの読み込み→更に別のswfの読み込みという コンテンツの構成は変更する事はできないので困っています。 ご教授いただければ幸いです。

  • オートフィルターをフォーム(VBA)で表現

    いつも大変お世話になっております。 データベースをExcelで作っており、 人の登録・削除、また指定した人のデータグラフなど様々なことをします。 データ例としましては、 番号 名前 出身  その中で、人を絞り込むためのフォームに UserForm1 combobox1 combobox2 combobox3 ・ ・ ・ と、10個程度のコンボボックスを配置してます。 そのコンボボックスには、フィルターをかける内容が記載されており、 -----------データ例----------- No,氏名,郵便番号,住所,クラス,生年月日,年齢,趣味 0001,小林 博,102-0093,東京,A,1966/3/8,47,パソコン 0002,山崎 恵,212-0000,神奈川,B,1982/5/29,31,サーフィン 0003,桑野 雅寛,106-0032,大阪,C,1954/8/3,59,漫画 0004,樋渡 宏,101-0021,東京,D,1981/3/14,32,パソコン 0005,海田 健司,590-0057,大阪,E,1960/5/22,53,アニメ 0006,山崎 恵,212-0000,神奈川,A,1982/5/29,31,パソコン 0007,市川 耕作,150-0002,東京,B,1965/8/21,38,サーフィン 0008,山田 英範,836-0022,福岡,C,1946/12/24,57,パソコン 0009,小野 慶一,440-0034,愛知,D,1942/8/16,61,小説 0010,奥田 光昭,151-0053,東京,B,1943/6/18,61,パソコン 0011,榎本 香緒里,259-1219,神奈川,E,1961/5/30,43,漫画 0012,永島 豊,140-0002,東京,E,1949/8/31,54,パソコン 0013,北村 祥徳,899-4315,鹿児島,C,1950/11/25,53,アニメ 0014,土橋 一登,107-0052,東京,D,1945/6/25,59,小説 0015,平澤 秀樹,722-0041,広島,A,1956/1/29,48,サーフィン 0016,角居 弘之,107-0061,東京,E,1949/3/9,55,パソコン ---------------------------------- Excelのデータ⇒区切り位置⇒カンマ と選択して使ってください。 例えば、上記のようなデータがあるとします。 フォームは Form1 Label1 Combobox1 Label2 Combobox2 Label3 Combobox3 Label4 Combobox4 Label5 Combobox5 Label6 Combobox6 Label7 Combobox7 Label8 Combobox8 上記のような配置になっており、 LabelのCaptionは下記の通りです。 Label1 No Label2 氏名 Label3 郵便番号 Label4 住所 Label5 クラス Label6 生年月日 Label7 年齢 Label8 趣味 一致したデータをどんどん絞っていくわけなのですが、 絞った(Comboboxを選択確定した)後、Comboboxのデータを 絞った後に表示される項目のみ表示させたいと思っています。 例えば、Combobox5を 「神奈川」と選択したとします。 そしたら、 Combobox1のリストは 2 6 11 しか選択できないようにしたいのです。 オートフィルタそのものを VBAのフォームに置き換えるような感じです。 このようなことは可能でしょうか? 可視セルの重複しないセルを取得するのは とても大変なのですが、何か良い方法は無いでしょうか? 話がごちゃごちゃなってきましたので、 やりたいことをまとめます。 ●可視セルの列(1列ずつ)の、重複しないデータを取得←やり方がわかりません。 ●AfterUpdate(たしかコレだったような・・・)を使い  コンボボックスを選ぶと絞込み←ここまでは出来ます  そして、絞り込んだ後の可視セル重複しないデータを取得 ☆要するに、オートフィルタをフォーム上(VBA)で実現したい! ということです。 以上、よろしくお願い致します。

  • ComboBoxでの一文字検索が上手くいきません

    ソフトはEXCEL2003です。 質問内容: ユーザーフォーム習い始めたところで、つまずいています。 やりたいことは、フォーム上に配置したComboBoxに別シート(選択一覧)で作成した「カタカナ1文字、会社名、会社コード」の3項目を表示可能にしておく。 ComboBoxへのカタカナ1文字入力により、該当する会社の上記3項目を表示し、会社選択後ComboBoxには会社名を表示、リストボックスには選択した会社コードを表示し、登録リストに会社名と会社コードを登録する。 フォームを作成してテストしましたが、一部のカタカナ(ヒなど)で該当する会社が選択されません。 何が問題なのか知識が足りませんので、困っています。 お分かりになる方に教えて頂きたくお願いします。 なお今回会社名をカタカナ1文字検索にしたのは、例えば社名の前に(株)等が付くものや、同じ漢字でも日本(ニホン)、日陰(ヒカゲ)等呼び名が異なるものがあるためです。 また、ComboBoxのプロパティは「MatchEntry」を「0-fmMatchEntryFirstLetter」としてあります。 ところで作成した命令は次の通りです。 Private Sub UserForm_Initialize() Dim MyVar1 As Variant Dim Ws1, Ws2 As Worksheet Dim LastRow As Long Set Ws1 = Worksheets("登録") Set Ws2 = Worksheets("選択一覧") Ws2.Select MyVar1 = Range("A3:C490") With ComboBox1   .ColumnCount = 3  ’カタカナ1文字、会社名、会社コード   .ColumnWidths = "20;230;10"   .List = MyVar1 End With ComboBox1.TextColumn = 2   Ws1.Select   ComboBox1.MatchEntry = fmMatchEntryFirstLetter End Sub Private Sub ComboBox1_Change() '会社名処理 Dim Ws1, Ws2 As Worksheet Dim NawRow As Long Set Ws1 = Worksheets("登録") Set Ws2 = Worksheets("選択一覧") ComboBox1.MatchEntry = fmMatchEntryFirstLetter    '表示行数を確認 一番上が「0」なので+1   NawRow = Me.ComboBox1.ListIndex + 1   TextBox4.Text = Ws2.Cells(NawRow + 2, 3) '会社コード表示;選択一覧は3列3行目から開始 Ws2.Cells(1, 1) = NawRow + 3       '選択一覧1行目に選択行表示 デバック用 End Sub  ※登録リストへの会社名と会社コードを登録する部分は省略しました。  以上よろしくお願いします。 その他、このような多くの会社名選択で、よい方法があれば教えてください。

  • VB.2010 ComboBox 項目選択

    Builder C++ではかなりのプログラムを作成していますが、拠点でプログラムを変更出来る様にVBでプログラムを作成し直しているVBに関してはほぼ初心者です。 VBでComboBoxを使用して内容を選択させようとして居ます。 プログラムの最初でComboBoxのTextに初期値(前回選択値)を設定して居ます。 ComboBoxで選択された内容はComboBoxの内容が変更された時に次回プログラム実行時の初期表示の為にiniファイルに書き込みをして居ます。 問題はプログラムの最初に初期値を書き込んだ時にもComboBoxの内容が変更される為、内容変更の割り込みが入り、iniファイルの書き込みルーチンが動作してしまう事です。 ComboBoxのTextの書き込の時に割り込みをしなくて、選択をした時のみ割り込みが発生する割り込みがあると良いのですが、調べた範囲では無い様でした。 Builder C++ではMouseUPイベントの割り込みを使って同じ機能を実現させたのですが、VBのMouseUpイベントでは一つ前に選択された内容しか入って来て居ない様です。 MouseUpのイベント割り込み先には以下のコーディングをして居ます。 Private Sub ComboBox1_MouseUp(ByVal sender・・・・・ Label1.Text = ComboBox1->Text End Sub しかし、これだと選択した時は前回選択された内容が表示されてしまいます。 当然 Private Sub ComboBox1_SelectedIndexChanged(ByVal sender ・・・ Label1.Text = ComboBox1->Text End Sub の場合は選択された内容が表示されます。 双方共、実行後のComboBox自体の表示内容は選択されたものになって居ます。 MouseUpのイベントの時にも選択された内容が表示されれば、このイベントでは ComboBox1->Text 初期値を設定した時はイベントが発生しないので都合が良いのですが、一つ前に選択された内容しか表示されません。 MouseUpの時には未だ内部処理が終了していないので新しい内容が表示出来ないのでしょうか。 Builder C++ には Application->ProcessMessages()と言う、他のタスクを先に実行させる関数がありますが、多分VBにもその様な関数があると思いますので、それを挿入すれば最新の状態を入手できるものでしょうか。 上記目的を達成出来る方法はありますでしょうか。 無ければフラグを使用して、ComboBox1->Text に初期値を設定した時には割り込み先でiniファイルの書き込みをしない様にプログラムする予定です。 当然、初期値を表示して居るのですから初期値設定時に再度iniファイルに書き込みがあっても問題は無いのですが、実際には動作していけないプログラムを書きますので、初期値書き込み時には割り込みが無い様にしたいのです。 VBでの処理方法がありましたらお教え下さい。宜しくお願い致します。

  • Comboboxのデータを入れ替えたいが一部残ってしまう

    OS:WinXP-Home Office:Excel2000 を使用して、VBAの入力フォームを作成しています 3つのCombobox(オブジェクト名を「Data○」と命名:○には数字が入ります)を使い 1つ目のComboboxが選択されると 2・3個目のComboboxにデータが入るようにしたいのですが 以下のソースで不具合が出ましたのでお知恵を貸してください Private Sub UserForm_Initialize() Data1.AddItem "A" Data1.AddItem "あ" End Sub Private Sub Data1_Change() Dim i As Integer Dim j As Integer For j = 2 To 3 For i = 1 To Controls("Data" & j).ListCount Controls("Data" & j).RemoveItem 0 Next i Next j Select Case Data1.ListIndex Case 0 For j = 2 To 3 Controls("Data" & j).AddItem "A" Controls("Data" & j).AddItem "B" Controls("Data" & j).AddItem "C" Next j Case 1 For j = 2 To 3 Controls("Data" & j).AddItem "あ" Controls("Data" & j).AddItem "い" Controls("Data" & j).AddItem "う" Controls("Data" & j).AddItem "え" Controls("Data" & j).AddItem "お" Next j End Select End Sub これを実行した時に、 例えば2・3個目のComboboxを何も選択していない状態で 1つ目のComboboxを操作すると問題なくデータが開放されて 新たに入ります ですが、例えば 1個目:"あ" 2個目:"え" などの選択された状態で1個目を"A"に変えると 2個目のリストには "お" "A" "B" "C" となるケースがあります(毎回ではありません) Removeitemをする部分で調べてみたところ、うまくいかない時は 内側のiのループで Controls("Data" & j).ListCountの値は正常なのに 実際のループでは選択しているListindexで ループから抜けてしまっていました ソース上では問題ないので、どこを修正したらよいか分かりません よろしくお願いします

  • ExcelVBAでユーザーフォームのイベント対応

    Excel2010です。ユーザーフォーム上に配置した6個のComboBox(1から6)があります。 それぞれのComboBox上にマウスポインターを当てた際、そこが選択されていれば(="名称" 以外であれば)同じユーザーフォーム上にあるLabel23に説明の文字を表示させたいのです。 以下のようにComboBox1からComboBox6までComboBoxの番号以外は全く同じコードを書けばそうできると思いますが、これをもっと簡単に書くことはできないでしょうか?教えてください。 あと、もう1点 下記のコードの変数(Button、Shift、X、Y)の意味と役割は何でしょうか? Private Sub ComboBox1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single) If Me.ComboBox1.Value = "名称" Then Exit Sub Me.Label23.Caption = Me.ComboBox1.Value & Range(Me.ComboBox1.ControlSource).Offset(, 9).Value End Sub 途中ComboBox 2から5は省略 Private Sub ComboBox2_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single) If Me.ComboBox6.Value = "名称" Then Exit Sub Me.Label23.Caption = Me.ComboBox6.Value & Range(Me.ComboBox6.ControlSource).Offset(, 9).Value End Sub

  • MCを最背面に表示したい+ムービーの方向・速さを変えたい

    こんばんは。 FLASHアクションスクリプトで、以下のスクリプトを利用して、 背景にものが動いているムービーを作りたいと思っております。 ↓ライブラリにあるMCをコピーする http://hakuhin.hp.infoseek.co.jp/main/as/movieclip.html#MOVIECLIP_07 こちらのスクリプトは問題なく動作したのですが、 スクリプトの内容が把握できず、困っております。 3つのご質問がございます。 (1)質問1 シーン1の上部レイヤーに違うオブジェクトを配置しており、 その下のレイヤーに上記のMCを配置しているのですが、 再生すると上記MCの方が上レイヤーのオブジェクトより前に表示されてしまいます。 このMCを最背面に表示させたいと考えております。 (2)質問2 MCの動きをもうちょっと早くしたいと思っております。 (3)質問3 上記サンプルMCでは、左から右へ移動しているのですが、 これを、下から上へ移動させたいと考えております。 スクリプトのどの部分で操作するのか教えていただける方いらっしゃいますでしょうか? 以下、作業環境です。 ----------------------------- WinXP FLASH8 ----------------------------- どうか、よろしくお願い致します。

  • VC# コンボボックスの大文字・小文字を区別する

    VC# 2005で、以下のようなコードを書くと、大文字・小文字の区別がなく、 1行目で追加したアイテムが選択された状態になってしまいます。 comboBox1.Items.Add("a"); comboBox1.Text = "A"; 大文字・小文字を別として扱うことはできますでしょうか?