メイン コーダーズルーム【スクリプト系】 createObject で作成したオブジェクトに対する _alpha の設定 | 投稿するにはまず登録を |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
taka1206 | Åê¹ÆNo.28724 投稿日時: 2006-9-14 21:16 |
半人前 居住地: 投稿: 32
使用環境:
OS:Windows2000 SP4 FLASH 8 Pro |
createObject で作成したオブジェクトに対する _alpha の設定 以下の状況で、ボタンに対する _alpha の設定ができません。
1. button コンポーネントをステージに配置して削除する。 2. シェイプを描画してそれをボタンにシンボル変換し、org_btn という識別子でリンケージを設定する。 3. 以下のスクリプトをフレーム1に記述して実行する。
そうすると、前半部分で作成したオブジェクトは rollover時に _alpha の設定が変わるのですが、 後半部分で作成したオブジェクトは _alpha の設定が変わりません。 (trace で _alphaを表示すると undefined となってしまいます) この原因についてご教示いただけないでしょうか? |
野中文雄 | Åê¹ÆNo.28726 投稿日時: 2006-9-14 21:40 |
ちょんまげら 居住地: 東京 投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1) |
Re: createObject で作成したオブジェクトに対する _alpha の設定 「forループでMovieClipに設定したイベントハンドラメソッドから変数を参照する」をお読みください。
引用: taka1206さんは書きました: |
ひろゆき | Åê¹ÆNo.28732 投稿日時: 2006-9-15 2:28 |
ちょんまげら 居住地: 東京砂漠 投稿: 4403
使用環境:
10.8.5 Flash Professional CS4/CS6/CC Safari 6.1 |
Re: createObject で作成したオブジェクトに対する _alpha の設定 createObject の返り値とthis を活用すると、
こんな感じにもできると思います。
|
taka1206 | Åê¹ÆNo.28737 投稿日時: 2006-9-15 10:42 |
半人前 居住地: 投稿: 32
使用環境:
OS:Windows2000 SP4 FLASH 8 Pro |
Re: createObject で作成したオブジェクトに対する _alpha の設定 野中さん、ひろゆきさん
早速のご回答ありがとうございます。 お二人に提示してただいた方法、両方とも希望通りの動きをすることを確認できました。 イベントハンドラで設定した関数は、1フレーム実行時に展開されるのかと思っていましたが、 イベントが起こった時点でそのファンクションが実行され、その時点での変数を参照するのですね。 野中さんの書かれているサイトも読ませていただき、 大変丁寧な説明で、よく理解できました。 ありがとうございます! 今後ともよろしくお願いいたします。 |
野中文雄 | Åê¹ÆNo.28742 投稿日時: 2006-9-15 13:39 |
ちょんまげら 居住地: 東京 投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1) |
Re: createObject で作成したオブジェクトに対する _alpha の設定 末節の話題になりますけど。UIObject.createObject()メソッドの戻り値は、MovieClipデータ型ですね。ただ、タイムラインに記述すると、ターゲットをthisでなく型指定したインスタンスにしても、型チェックが利かないようです。
クラス定義した場合には、型チェックが機能しますので、キャストするかMovieClip型で指定する必要があるでしょう。
引用: ひろゆきさんは書きました: あと、ご質問は解決したようですので、素朴な疑問ですけど。 Buttonコンポーネントのリンケージ識別子は、何か特別なことをやっていないかぎり、"Button"のはずですね。それとも、mx.controls.Buttonクラスを継承して、そのクラスをMovieClipシンボルに設定したのでしょうか。 「ボタンにシンボル変換し」とあるのは、まさか「ボタンシンボル」を作成して、それをダイナミックに配置しているというのではありませんよね(やってみたら、できるにはできましたが)。 |
taka1206 | Åê¹ÆNo.28746 投稿日時: 2006-9-15 17:20 |
半人前 居住地: 投稿: 32
使用環境:
OS:Windows2000 SP4 FLASH 8 Pro |
Re: createObject で作成したオブジェクトに対する _alpha の設定 引用:
そのまさかの方法でやっております。 リンケージ識別子について、あまり理解できていないのかもしれませんが、 リンケージ識別子は、作成したオブジェクトを参照するための名前だけの意味かと思っています。 もし、お時間があればで構わないのですが、参考になるサイトがあれば教えていただけますでしょうか。 |
野中文雄 | Åê¹ÆNo.28964 投稿日時: 2006-9-27 15:51 |
ちょんまげら 居住地: 東京 投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1) |
Re: createObject で作成したオブジェクトに対する _alpha の設定 「action scriptでボタンシンボルにアクセスできますか?」の投稿で、忘れていたことを思い出しました。
UIObject.createObject()メソッドは、内部的にMovieClip.attachMovie()メソッドを呼んでおり、その戻り値もMovieClipです。したがって、Buttonインスタンスに対して正規にサポートされる動作かどうかは、かなり疑問が残ると思います。 引用: taka1206さんは書きました: |
taka1206 | Åê¹ÆNo.28987 投稿日時: 2006-9-28 12:52 |
半人前 居住地: 投稿: 32
使用環境:
OS:Windows2000 SP4 FLASH 8 Pro |
Re: createObject で作成したオブジェクトに対する _alpha の設定 なるほどー。
ご回答いただきありがとうございます。 この時に質問させていただいたアプリケーションは、 思ったように動作しないなどいろいろ問題があり、現状では、 createObjectでMCインスタンスを生成するように変更しています。 そのいろいろな問題は、ここに原因があったのかもしれませんね。 |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |
投稿するにはまず登録を | |