現在、FLASHで作品を作成していて、ActionScriptを勉強中なのですが、あるところで詰まってしまい質問させていただくことになりました。
その詰まっているところとは、『繰り返し文を用いて、スクロールバーを非表示にする』ということです。
同じようなページを多数作成していて、その中でテキストを表示させる画面があるのですが、そのテキストの長さがまちまちなので、テキストの長さを判別してスクロールの必要がなければ、スクロールバーを非表示にする。ということです。
そしてデータが多量ゆえ効率化しようとおもい、繰り返し文を用いて効率化しようとしたのですが、なかなかうまくいかず困っています。
現状のスクリプトでは、1ページ目はきちんとスクロールバーの表示・非表示がされるのですが、2ページ目以降に遷移すると非表示になるはずのスクロールバーが真っ白の状態で表示されてしまっているのです。
ちなみに使用しているスクロールバーは、コーポネントの中にある「UIScrollbar」です。
なお、ActionScriptは以下のようになっております。
//sub_bar=スクロールバー(sub2_barも同義)
//sub=テキスト(sub2も同義)
for (i=1; i<=10; i++) {
//スクロールの必要がないならスクロールバーを非表示
this["sub_bar"+i]._visible = (this["sub"+i].maxscroll<=1) ? false : true;
this["sub2_bar"+i]._visible = (this["sub2"+i].maxscroll<=1) ? false : true;
}
テキストのインスタンス名は"sub1,sub2,sub3…"といったように、
スクロールバーのインスタンス名は"sub_bar1,sub_bar2,sub_bar3…"といったようになっております。
質問でよくわからない点、足りない点があれば、補足いたしますのでおっしゃってください。
よろしくお願いします。
No.1ベストアンサー
- 回答日時:
Flash ではそもそも「ページ」というものは存在しないので
(出てくるとすればFlash を印刷する場合の印刷物のページ),
ページと書かれましても何のことかわかりませんが,
例えば,
メインムービーの フレーム1 に複数のテキストフィールドがあって,
メインムービーの フレーム2 に,フレーム1とは別のテキストフィールドがあるという意味でしょうか?
よくわかりませんが,
上記のように,フレームのことだとすると,
sub_bar1 ~ sub_bar10 が存在するフレームには次のように,
for (i=1; i<=10; i++) {
//スクロールの必要がないならスクロールバーを非表示
this["sub_bar"+i]._visible = (this["sub"+i].maxscroll<=1) ? false : true;
}
sub2_bar1 ~ sub2_bar10 が存在するフレームには次のように,
for (i=1; i<=10; i++) {
//スクロールの必要がないならスクロールバーを非表示
this["sub2_bar"+i]._visible = (this["sub2"+i].maxscroll<=1) ? false : true;
}
分けて書かなければなりません。
実際のムービーの構造がよくわかりませんが,とにかく,
指示したいオブジェクトが,ちゃんとステージに存在する状態で指示してください。
=====================
Flash は,基本的に時間軸にそってアニメーションするコンテンツです。
フレーム1 で操作できるのは,
フレーム1 に存在するオブジェクトのみです。
普通は次のように複数フレームにわたってオブジェクトが存在します。
5 10
□ レイヤー 筆・・|○ []|●/////[]|○ []|
仮に,
上のように フレーム5 ~ フレーム10 まで存在するものがあるとすれば,
フレーム1 に その物に対するプロパティを書くことはできません。
実際には書けますが,書いても無効です。
フレーム5 で出没するムービークリップのアルファ(不透明度)を,
フレーム5 で半透明(アルファ50)にしようと思えば,
フレーム5 に
ムービークリップのインスタンス名._aipha = 50;
と書けば フレーム5 以降はアルファ50のまま時間は流れます。
そうではなく,フレーム8 に
ムービークリップのインスタンス名._aipha = 50;
と書けば フレーム5 で出没するムービークリップにはアルファはかかっていませんが,
フレーム8 でアルファがかかり,
フレーム8 以降アルファ50になりそのまま時間は流れます。
とにかく,そのとき(スクリプトを実行する時点で),
ステージ上などに存在するインスタンスにしか命令や数値代入はできません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) マウスオーバー→ホイール回転でスクロールできない 2 2022/10/31 10:06
- Excel(エクセル) 【マクロ】リボン、行列、数式・ステータスバを非表示に 4 2022/12/12 07:32
- Visual Basic(VBA) Excelのマクロコードについて教えてください。 1 2022/06/19 10:08
- gooブログ 記事の下にスクロールバーが表示される 2 2022/08/19 20:42
- Visual Basic(VBA) Excel VBA キーワードから列を取得して、さらに空欄行を非表示にする 3 2022/10/21 22:49
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 6 2022/06/08 12:55
- Excel(エクセル) 【マクロ】マクロが保存されているエクセルとは、別のエクセルブックの全シートの非表示列を再表示したい 1 2022/12/24 20:48
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2022/06/10 11:06
- Visual Basic(VBA) VBA Bookの表示、非表示 1 2022/09/16 20:44
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/03/07 14:05
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VB6のスクロールバー付きフレー...
-
フレーム内のオプションボタン...
-
フレームでのResponse.Redirect
-
Flash再生中につぎのフレームを...
-
Directshowを使って動画を画像...
-
VBで動的に作成したパネルの上...
-
2Dゲーム作成する際、アニメー...
-
Access2010でサブフォームのフ...
-
シンクライアントとMetaFrameの...
-
フレーム内に移動したい
-
C言語 バッファについて。
-
画面全体にマスク
-
GetPrivateProfileString変値
-
ムービークリップの位置と角度...
-
A.S 3.0 キーボードでのフレー...
-
FLASH上でインラインフレームみ...
-
Flash lite1.0で カウントダウン
-
ハードディスク DVD 読み...
-
Flash Liteで作成したFlash待ち...
-
phpで音を鳴らす
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
フレーム内に移動したい
-
ソーラーパネルのアルミフレー...
-
HPを作りたい
-
ドロップフレームの計算をエク...
-
フレーム内のオプションボタン...
-
車の運転時のメガネ 縁なし(...
-
VBで動的に作成したパネルの上...
-
Access2010でサブフォームのフ...
-
PS5やPS4proに関して質問です。...
-
B2ポスターフレームの自作
-
メガネのフレームの買い取りに...
-
フレーム内でのリダイレクトに...
-
2倍速を等速動画に(車載動画)
-
チェックボックスを横並びに表...
-
cisco catalystのトラブルシュ...
-
HDDを5台入れられる金属フレー...
-
フレームでのResponse.Redirect
-
KSR2 車体番号
-
Directshowを使って動画を画像...
-
2Dゲーム作成する際、アニメー...
おすすめ情報