- ベストアンサー
Flash5で_rootじゃだめthisならOKなんてありますでしょうか。
いま、FLASH5でローディングバーを作成しているのですが、矩形でバーを作りムービークリップにして、それを_xscaleで伸ばしたいと考えています。そこでテストと言ってはなんですが、例えばそのムービークリップを_rootで幅80%指定(例えばMCと言うムービークリップであれば_root.MC._xscale=80)すると、幅が100%のままで再生されてしまいます。これをthisで定義(this.MC._xscale=80)とすると、これでやっと80%の幅で再生されますが、なんだか矩形のローディングバーだけではなくて画面自体のステージ全体が80%にまで伸縮されて表示されます。このthisの状態で アクションスプリクトを組んで、ループさせてバーを0%の長さから100%の長さまで伸ばしたら、バーが走り回る事態になります。バージョンは、Flash5日本語版でエデュケーション版となっています。なぜこのような現象が起こるのかコメントお願いいたします。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
_root.MC._xscale = 80; これは、フレームアクションとして設定されているのでしょうか。 その状態だと仮定して、基本的なことから考えてみます。 ムービークリップ名ではなくインスタンス名は「MC」となっていますか? ムービークリップ名とは、ライブラリなどで表示されている名前です。 これとは別に、ステージに配置されたムービクリップにはインスタンス名を付ける必要があります。 選択された状態で右クリック→プロパティ、で確認できます。(たしか…) そこでインスタンス名を「MC」と付けて、プレビューしてみてください。 もしこの対処で直るようでしたら、ターゲットのパスがうまく指定できていなかったことが原因となります。 画面全体が80%に表示されてしまうというのは、 フレームに this._xscale = 80; と書いた場合、「this」はFlashファイル全体をムービークリップとして指定し、その横幅(_xscale)を80%に縮小表示しているということですね。 この状態で縮小拡大すれば当然ステージ全体が伸び縮みするわけで、そこに配置されたバーが大移動する事態になります。ステージ全体を1つのムービークリップとして考えると解りやすいかもしれません。 キーワードは、相対パス、絶対パス、です。 質問はFlashのカテゴリがあるようなので、そちらですると良い回答が得られるかもしれません。
お礼
貴重なアドバイス誠にありがとうございます。 いろいろ試した結果、わたくしの持っているFLASH5はエデュケーション版なのですが、通常版に比べて多少制約がある感じです。インターネット上でいろいろ調べたのですが、この_xscaleのプロパティーの事かは定かではございませんが、欠陥指摘やアップデートは無いなど話が出ていました。最初から通常版買っていてよかったなどの話もありました。メーカーに直接確認はとっていないのですが、要はムービープレビューの問題のようです。ムービープレビューを行って普通は連続再生されてバーなんかが伸縮されて見えますが、わたくしのエデュケーション版の場合はプレビューを2,3秒間隔で静止されたのがデジタル的にプレイされるようです。要は伸縮せずその2,3秒間止まったままで次のフレームが2,3秒静止画という感じのようです。プロパティーの_rootも使えないようです。 当方において、ご指摘のほどはすべて行っているみたいです。今度通常版を手に入れて再挑戦したいと思っている次第です。ありがとうございました。