- ベストアンサー
TEXT.SPACEをFLASH7以降で動かす為には?
- levitated.netのTEXT.SPACEをFLASH7以降でも正常に表示する方法を教えてください。
- 現在の私のスキルでは修正できないため、修正方法を説明しているサイトを教えてください。
- 要望:FlashPlayer7以降で正常に動作するTEXT.SPACEの修正方法や関連サイト情報を教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
#1です。 こちらこそ検証が不十分でもうしわけありません。 Flash Player 7 用 SWF 以上は, 変数 の初期値の扱いが代わったとともに 大文字/小文字 の区別が付いたんです。 同じくメインタイムラインのレイヤー「logic」のフレーム1のスクリプトの 32行目辺りにあるコレ↓が間違ってます。 initialization = {txtword: word, x: x, y: y, z: z}; こう↓すべきです。 initialization = {txtWord: word, x: x, y: y, z: z}; #1で書いた内容は作者のミスではなく勝手なFlashの仕様変更によるものですが, こちら(大文字/小文字 の件)は作者のミスです。
その他の回答 (1)
- BlurFiltan
- ベストアンサー率91% (1611/1754)
【原因】 変数 depth の初期値が設定してありません。 Flash Player 6 までは初期値を設定されていない変数の値は 0 または ""(←空白文字列) として扱われます。 ですから, nombre = "word"+String(depth++); のようなことをいきなり書いても, depth++ ↓ depth = depth + 1 ↓ depth = 0 + 1 ↓ depth = 1 になるのですが, Flash Player 7 の場合 depth は 0 でも "" でもなく 「存在しない物は存在しない!」 と扱われますから, depth++ ↓ depth = ??? + 1 ↓ depth = ??? になってしまって,深度が順次指定されません。 【対処】 メインタイムラインのレイヤー「logic」のフレーム1のスクリプト // convert the string of words into an array of words this.wordList = new Array(); this.wordList = this.somewords.split(" "); の下辺り(21行目辺り)にでも, var depth = 0; の一行を加えてみてください。 これで動作すると思います。
お礼
さっそくご回答頂きありがとうございます。 変数 depth の初期値の設定がされていないためだったんですね。 大変参考になりました。 教えていただいた対処で動作の確認ができました。 本当にどうもありがとうございました。
補足
すみません。 ひとつ問題がありました。 ご回答のとおりにvar depth = 0;を追加して 動作はしているのですが、表示されている文字が全て "word"となってしまっております。 本来ならば17行目に記述されている単語がランダムで表示されるはずなのですが他に何か原因があるのでしょうか。
お礼
ご回答ありがとうございます。 まだFLASHをし始めて間もないので勉強になりました。 指摘していただきました箇所を修正して動作を確認いたしました。 本当にありがとうございました。