• 締切済み

インディケータの長さが最初から 100 %

以下を読んでプリローダを作ってみました: http://okwave.jp/kotaeru.php3?q=2394816 インディケータにはバーのビットマップ画像を使っています。 光回線なのでゆっくり見るため、10 MB くらいの画像を読み込むようにしました。 画像を読み込むところまではいくのですが、その前のプリローダのインディケータの長さが最初から 100% です。明らかに読み込んでいる最中も 100 % です。 自分で考えたことは、x 軸方向の長さを制御する部分がその意図通りになっていないということなんですが、原因不明です。 コードは丸写しなので、意味がないので、わざわざここに書きません。 ただ、インディケータのビットマップ インスタンス? (myMC) に AS を書き込もうと思っても、「インスタンス オブジェクト myMC にアクション スクリプトを割り当てることはできません。」と出てきます。それが問題なのでしょうか。 根本的な問題があるなら、画像を読み込むところまでいかないと思うのですが (エラー メッセージは出ません)。

みんなの回答

noname#35109
noname#35109
回答No.2

どうもです。 > // ★ココがアヤシイ↓★ > } else if (total>100) { これについては変えなくても良いのです。 なんでこの行があるかというと,  onClipEvent (enterFrame) {} でやっているので, 100パーセントには2回なるのです。  1回目 読み込むMC自体が表示されたとき。  2回目 読み込むMCにJPEGが100%読み込まれたとき です。  1回目 読み込むMC自体が表示されたとき。 に 100 %になってくれると,困るので(一瞬見苦しいだけ), そのときの 100 %は無視させてやろう。 最初作った小さな読み込むための MC の容量は 100 バイトを超えないだろうから。 else if (total>100) くらいで良いだろう。 という意味で入れてあるのです。 1000以下くらいで良いのではないでしょうか。100でも十分だと思いますよ。 しかし,でもこれはどうでも良い物です。 一瞬ちらっと 100 パーセントになるのを避けているだけで, 読み込む物のバイト数より小さければなんでも良いです。 小さすぎる数になっていても, 一瞬ちらっと 100 パーセントになるだけで,また,すぐに棒は短くなって見えるようになります。 ----------------------------------------------- > インディケータのビットマップ インスタンス? (myMC) に > AS を書き込もうと思っても、 > 「インスタンス オブジェクト myMC にアクション スクリプトを > 割り当てることはできません。」と出てきます。 それではどこに書いたのでしょうか? インジケータを MC ムービークリップ に変換してそこに書かなければうまく行きませんよ。 >> 横長い長方形の塗りを用意します。 >> >>  ■■■■■■■■■■■■■■■■ >> >> ↑こんな感じで適当な色の適当な塗りです。 >> その塗りを選択して, >> 右クリック→「シンボルに変換」でムービークリップシンボルに変換します。 ちゃんと 「右クリック→「シンボルに変換」でムービークリップシンボルに変換します。」 と書いているでしょう。 それに, >>  _root >>   ├ プリローダ(インスタンス名 特になし) >>   └ 読み込むMC(インスタンス名 myMC) ですよ。 だいたい,myMC はインジケータではありません。読み込むMCです。 とにかく,書いていることを全く無視されているので, うまく行くはずがありません。 それと,前回のご質問自体が, 「質問:loadMovieを使った場合のプリローダー」 という制約付きなのです。 だから本当はプリローダというものではなくて つまりあらかじめ読み込ませて置いて何かを実行するというものではなくて, 単なる飾りです。 ロードとは全く関係がありません。 前回のご質問者の方も,それはなっとくの上で書いているのです。 そこら辺のところも無視せず,前回質問者の方が何を求めているのかも理解した上でコピペしてください。

-ROM
質問者

補足

> だいたい,myMC はインジケータではありません。読み込むMCです。 トーラ%鬫

  • perse
  • ベストアンサー率74% (113/152)
回答No.1

>コードは丸写しなので、意味がないので、わざわざここに書きません。 #3の回答に ------------------------------------------------------ if (loaded<total) { this._visible = true; this._xscale = (loaded/total)*100; // ★ココがアヤシイ↓★ } else if (total>100) { this._visible = false; } total>100 の 100 は 100Bytes の 100 で,私が勝手に 感 で入れた数値です。 ------------------------------------------------------ と書かれています。これも丸写しなら一瞬で100%になると思います。 10MBということですので10000000にしていますか? またFlashMX以降のバージョンならば MovieClipLoaderクラスってのもありますよ。

関連するQ&A