トップへ戻るニュースフォーラムFLASH-ML 過去ログBak@Flaダウンロードよくある質問と答
ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   迷える子羊の部屋【初心者専用】
     外部テキストファイルの読み込みができない
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
小嶋妙子
Åê¹ÆNo.4805
投稿日時: 2004-3-11 14:09
新米
居住地: 大阪
投稿: 3
使用環境:
WinXP、FlashMX
外部テキストファイルの読み込みができない
既によく似たスレッドがありますが、そちらの対処法を試しても解決できなかったため書き込みさせて頂きます。

a.swfに外部テキストファイルを読み込ませているb.swfをloadMovieで読み込むとテキストファイルが表示されない。という状態です。どのような設定をしているかといいますと、

a.swfにはmcシンボル"contents"を配置しておりボタンアクションには以下のスクリプトを記入しています。
on (press) {
this.contents.loadMovie("b.swf");
}

b.swfにはテキストフィールド"shop"を配置しており、外部テキストファイル"01.txt"を読み込ませています。フレームアクションには以下のスクリプトを記入しています。
ちなみにb.swf単体ではテキストファイルを読み込みます。
System.useCodepage = true;
loadVariablesNum("01.txt", 0);
scb.setScrollTarget(shop);

説明が不十分かもしれませんが、宜しくお願いします。
野中文雄
Åê¹ÆNo.4807
投稿日時: 2004-3-11 14:45
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: 外部テキストファイルの読み込みができない
引用:
小嶋妙子さんは書きました:
a.swfに外部テキストファイルを読み込ませているb.swfをloadMovieで読み込むとテキストファイルが表示されない。という状態です。どのような設定をしているかといいますと、

"contents"は、「シンボル」名でなく、「インスタンス名」ですよね。シンボルとインスタンスは、明確に区別しましょう。
引用:
a.swfにはmcシンボル"contents"を配置しておりボタンアクションには以下のスクリプトを記入しています。
on (press) {
	this.contents.loadMovie("b.swf");
}

"shop"は、TextFieldの「インスタンス」名で、「変数」名ではありませんよね。すると、以下のスクリプトには、外部テキストの変数値をTextFieldインスタンスshopに設定する処理が見当たりません。「変数」名も別途設定しているということでしたら、「インスタンス」名と併用するのは混乱のもとですので、お勧めできません。
引用:
b.swfにはテキストフィールド"shop"を配置しており、外部テキストファイル"01.txt"を読み込ませています。フレームアクションには以下のスクリプトを記入しています。
ちなみにb.swf単体ではテキストファイルを読み込みます。
System.useCodepage = true;
loadVariablesNum("01.txt", 0);
scb.setScrollTarget(shop);

説明が不十分かもしれませんが、宜しくお願いします。

外部テキストファイルの変数は、loadVariablesNum()アクションを用いると、_level0にロードされます。_level0の参照先は、b.swf単体とa.swfのMovieClipに読込まれたときとでは、当然異なってきます。テキストを表示する処理で、そのパスの扱いを考慮されていないのではありませんか?


----------------
 

笠居トシヒロ
Åê¹ÆNo.4809
投稿日時: 2004-3-11 15:12
マスター
居住地: 兵庫
投稿: 870
使用環境:
SnowLeopard, Safari4, CS4
Windows7, IE8, CS4
Re: 外部テキストファイルの読み込みができない
引用:
"shop"は、TextFieldの「インスタンス」名で、「変数」名ではありませんよね。
すると、以下のスクリプトには、外部テキストの変数値を
TextFieldインスタンスshopに設定する処理が見当たりません。

ですね。ひょっとして、"shop"を変数名のつもりで書いていらっしゃるとか?

ようするに、b.swf単体で再生しているときには、_level0はb.swfのルートですが、
a.swfにb.swfをloadMovieした時点で、b.swfはa.swfのインスタンス"contents"になるので、
_level0はa.swfのルートになってしまうわけです。"shop"は同じ階層にあるはずの変数が、
ひとつ上の階層に読み込まれているため、何も表示できないと考えられます。

おそらく
loadVariablesNum("01.txt", 0);

this.loadVariables("01.txt");
に書き換えれば正常に動作するのではないでしょうか。


----------------
笠居 マッドシー
http://www.mad-c.com/

小嶋妙子
Åê¹ÆNo.4825
投稿日時: 2004-3-11 16:50
新米
居住地: 大阪
投稿: 3
使用環境:
WinXP、FlashMX
Re: 外部テキストファイルの読み込みができない
素早いご返答を頂きまして有難うございます。
ご指導頂いたとおりに直しました結果、意図するように正常に動きました。階層のお話も分かりやすく解説頂き理解できました。

説明が不十分でしたが、テキストフィールドにはインスタンス名を"shop"とし、それとは別に変数名"TextField10"を設定しています。
スクロールバーを表示させる場合、テキストフィールドにインスタンス名をつけないと設定できないと思い、"shop"としたのですが、インスタンス名と変数名を併用せずにスクロールバーの設定をする場合はどのようにすればよいのでしょうか?

野中文雄
Åê¹ÆNo.4826
投稿日時: 2004-3-11 17:07
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: 外部テキストファイルの読み込みができない
MX以降のスクリプティングでは、TextFieldに変数名を使用しないことをお勧めします。その場合、外部テキストから読込んだ変数は、TextFieldに自動的には設定されません。したがって、外部テキストファイルのロード待ち処理が必要になります。

しかしいずれにしても、ロード待ちをしなければ、FScrollBar. setScrollTarget()メソッドでScrollBarインスタンスの状態が更新されないように思います。テキストの分量の多い変数をロードしたとき、以下のスクリプトでScrollBarのスクロールボックスが正しいサイズに更新されますか?
loadVariablesNum("01.txt", 0);
scb.setScrollTarget(shop);

外部テキストファイルのロード待ち処理については、以下のノートをご参照ください。

[外部テキストファイルを読込む]
[LoadVarsオブジェクトを使った外部テキストファイルの読込み]
引用:
小嶋妙子さんは書きました:
説明が不十分でしたが、テキストフィールドにはインスタンス名を"shop"とし、それとは別に変数名"TextField10"を設定しています。
スクロールバーを表示させる場合、テキストフィールドにインスタンス名をつけないと設定できないと思い、"shop"としたのですが、インスタンス名と変数名を併用せずにスクロールバーの設定をする場合はどのようにすればよいのでしょうか?


----------------
 

小嶋妙子
Åê¹ÆNo.4836
投稿日時: 2004-3-11 18:34
新米
居住地: 大阪
投稿: 3
使用環境:
WinXP、FlashMX
Re: 外部テキストファイルの読み込みができない
引用:

野中文雄さんは書きました:
しかしいずれにしても、ロード待ちをしなければ、FScrollBar. setScrollTarget()メソッドでScrollBarインスタンスの状態が更新されないように思います。テキストの分量の多い変数をロードしたとき、以下のスクリプトでScrollBarのスクロールボックスが正しいサイズに更新されますか?
loadVariablesNum("01.txt", 0);
scb.setScrollTarget(shop);

上記のスクリプトですが今のところ、"b.swf"単体で動かす場合にはスクロールボックスは正しいサイズに更新されています。ですが"a.swf"から"b.swf"を読み込んだ状態ではスクロールボックスは動作しません。教えていただいた記事を読んで勉強させていただきたいと思います。有難うございました。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

投稿するにはまず登録を
 
Copyright (C) 2003 FLASH-japan. All rights reserved.
Powered by Xoops