- ベストアンサー
自分以外のMCを透明に
- 変数代入の基本的な部分が解っていないため、mc05をクリックした時に他のMCが半透明になるようにする方法を知りたい。
- 現在はクリックすると「_root.numP = 1;」が表示されるようになっているが、スカッとまとめてアルファをかける方法があれば知りたい。
- 一つずつmc01〜mc10まで記述する方法も考えられるが、効率的な方法を教えてほしい。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
まず, >> それぞれmc01~mc10まで変数名をつけています。 の部分ですが,変数名ではなくインスタンス名の間違いですよね。 変数を書く部分があったかと思い,思わず確認してしまいました。 アルファを操作するMCの連番の中に自分自身を含みますからね。 なかなか,スカッとまとめてアルファをかける方法は思いつきません。 スカッっとではないですが, オーソドックスには mc05 に自分自身を除いたmcのアルファを1つ1つ50にするスクリプトを書くくらいですね。 ----------------------------- on (release) { _root.mc01._alpha = 50; _root.mc02._alpha = 50; _root.mc03._alpha = 50; _root.mc04._alpha = 50; _root.mc06._alpha = 50; _root.mc07._alpha = 50; _root.mc08._alpha = 50; _root.mc09._alpha = 50; _root.mc10._alpha = 50; } ----------------------------- 自分自身は mc0 とかで,他の mc1~mc10 のアルファを50にするのなら, for文でスカッと行きます。 この場合は,for文を使って,mc1~mc10 のアルファを50にして,再び自分自身mc5のアルファを100に戻すと考えれば,スカッとに近い形にはなります。 とりあえず,mc01~mc09 までのインスタンス名を mc1~mc9 に変えます。0を取ってくださいと言うことです。 そして,mc5 には以下のようなスクリプトを書きます。 ----------------------------- on (release) { for (i=1; i<=10; i++) { _root["mc"+i]._alpha = 50; } this._alpha = 100; } ----------------------------- このスクリプトなら,mc1~mc10の全てに同じ事を書いても, 自動的に,自分自身以外のアルファは50になり,自分自身(this)のアルファが100になります。 自分自身のアルファが50になっている状態は見えませんから大丈夫ですよ。 上に書いた方のスクリプトだと,mc1~mc1000まであった場合,1001行になってしまいますが, 下に書いた方のスクリプトだと,mc1~mc1000まであっても6行です。 for文は,ヘルプによると, ~・~・~・~・~・~・~・~・~・~・~・~・ for(init; condition; next) { statement(s); } パラメータ init ループの開始前に評価される式。通常は代入式です。このパラメータに対しては、var ステートメントも実行できます。 condition true または false に評価される式。条件は、各ループの実行前に評価されます。条件の評価が false の場合はループから抜けます。 next 各ループ実行後に評価される式。通常は、インクリメント (++) またはデクリメント (--) 演算子を使用する代入式です。 ~・~・~・~・~・~・~・~・~・~・~・~・ はぁ~,理解していても,何が書いてあるんだかさっぱりわからない。 スクリプトより文章の方が難しいですね。 とにかく, for (i=1; i<=10; i++){ } は 変数 i の初期値は 1 で ; iが10以下のとき ; iを1ずつ加算しながら{ }内を実行する。 というような意味です。 使い慣れると役に立ちますよ。使い慣れると,よけいにわからなくなるヘルプを見る必要もなくなりますし。
お礼
sassakunさん、連続してご回答いただきまして本当にありがとうございます!まさに欲しい答えをいただきました。 そうですよね、インスタンス名ですよね。こういうところを曖昧にしているからいけないのだなあ、と反省。 _root["mc"+i].という書き方があるのですね!目からうろこです。どうしてもインスタンス名のナンバー部分を変えるやり方がわからなかったので、とても助かりました。 昨日買ってきたActionScriptの本と首っ引きでがんばってみます。お忙しい中、お答え頂きありがとうございました。