| Name |
ルイ
|
| Date |
2003年06月04日 (水) 15時20分 |
| Message |
ごめんなさい〜...引き続いて問題が...!
テキストを流れるようにスクロールすることは出来たのですが、テキスト表示部分のMCをメインタイムラインに置いて、メインタイムラインのボタンで他の.txtファイルを表示させたいんですが、どうしたら良いでしょうか。
_rootやthis、MCに名前をつけていろいろやってみたんですができません。
メインタイムラインのボタンで他のファイルを読み込ませるにはこの場合どうすれば良いんでしょうか??次々すいません、お願いします!! |
Response
01
|
| 2003年06月04日
(水) 15時21分> ルイ
|
|
三つ前のテキストフィールドのことでお聞きしたもののレスレスです!
間違えて新規投稿にしちゃいました...。面目ない。
|
|
Response
02
|
| 2003年06月04日
(水) 23時49分> 憲ちゃん
|
|
scroll_txt7.fla sample1.txt sample2.txt sample3.txt
テキスト読み込み&表示用MCの前回サンプルのクリップアクションの最初の部分・・・
onClipEvent (load) {
loadVariables("profile3.txt","");
num = 0;
}
このMC自身が(タイムラインに登場して)読み込まれたとき「=onClipEvent(load)」、
太字で指定したファイル名の外部テキストデータを読み込むということでした。
ということは、その部分を変数にして、
ボタンから変数の中身(値)を代入するようにすれば上手くいきそうです♪
変数の中身とは、具体的には個々の外部テキストのファイル名・・・
今回のサンプルでは「sample1.txt」「sample2.txt」「sample3.txt」です。
拡張子の部分「.txt」は変わりませんから、ファイル名を入れる変数を仮に「textName」とし、
元のタイムラインに置いたボタンのボタンアクションで・・・
on(release){
textName = "sample1";
}
として、テキスト読み込み&表示用MCの最初の部分を・・・
onClipEvent (load) {
loadVariables(_root.textName +".txt","");
num = 0;
}
※変数textNameは元のタイムラインにありますから、
※MCから見た場合、前に「_root」をつけて「_root.textName」とするのは既にお分かりですね♪
と書き換えれば、
「_root.textName + ".txt"」とは、「sample1.txt」のことになります。
多分、ルイさんもこの辺ぐらいまでは考え付かれたと思いますが。。。上手くいかなかった!?(笑)
それは、MCのクリップアクションの「onClipEvent(load){処理;}」というのは、
MCがタイムラインに登場して読み込まれた(最初の)ときだけしか、
{ }内の処理を実行しないということを再度思い出してください(^^g/~~
一度、タイムラインに登場して指定したファイル名のデータを読み込むと、
そのMCがタイムライン上に存在し続ける限りは、以後、外からボタンで変数の値を変更しても
{ }内が実行されないので意味をなさないという訳です(^^;
どうしたら、もう一度実行させることができるか?
そのMCをタイムラインから一旦消滅させて、再登場させれば、
その瞬間、最初から読み直しますので「onClipEvent(load){ 処理;}」を実行します。
そのとき改めて変数textNameの値を取得し、
アクションどおり、そこで指定されたファイルを読みに行くことになります(*^-^*)
したがって、上のクリップアクションの書き換えのほかに、
@テキスト選択ボタンがクリックされたら、
A変数textNameに該当する外部テキストの「”ファイル名”」を代入し、
Bさらに、一旦MCをタイムラインから消滅させて、再び登場させる!
ということをする必要があります。
Bのやり方は、作品の中の他のオブジェクトとの関連や全体構成の流れ等によって
いろいろと工夫の余地がありますが・・・
他のことを考慮せず単純にこれだけのことをするだけなら、例えば・・・

図のように、「TXT選択ボタン」を追加して、全体に3フレームまでフレームを増やします。
アクションレイヤーの1フレームには、
最初にテキストフィールドに読み込むファイル名として、変数textName に代入します。
2フレームには「stop();」を入れて、タイムラインを停止。
3フレームには「gotoAndStop(2);」として、2〜3フレームのループにしています。
ここで、注目は・・・これまでご説明している「TXTスクロールセット」MCですね!!
1フレームのキーフレームに配置していますが、3フレームにはありません。
各TXT選択ボタンのボタンアクションは、上記アクションに「play();」を追加して、
on(release){
textName = "sample2"; ※ボタンによって「sample1」〜「sample3」
play();
}
このようにします。
最初にムービーが再生されたとき、1フレームのtextNameに最初のファイル名が代入され、
MCの「(load)」内の処理を実行、テキストフィールドに表示されて、2フレームで停止します。
選択ボタンをクリックすると、変数textNameに該当のファイル名が代入され、
同時にタイムラインが移動して、3フレームに行きます。
3フレームのタイムラインに「MCがない」ので、その瞬間一旦消滅。
「gotoAndStop(2);」で2フレームに移動すると、再び「MCが登場」し、
改めてMCの「(load)」内の処理からやり直すことになります♪~~~
|
|
Response
03
|
|
Response
04
|
| 2003年06月05日
(木) 15時00分> ルイ
|
|
有難うございます!
加えて質問です。.txtデータがnovelというディレクトリ(フォルダ)にある場合、指定するにはどうすれば良いですか??
上の単純に読み込ませるところまではできましたが、テキストデータをサイトの管理上ディレクトリを分けてしまいたいのです....。お願いします!
|
|
Response
05
|
| 2003年06月05日
(木) 17時00分> 憲ちゃん
|
|
パスを指定するときの注意点として、
swfを埋め込んでいる「HTMLファイルの位置を基点とする」ということをおさえたうえで・・・
※swfとHTMLが同じフォルダにあるなら、このことは今は気にしないで読み飛ばしてください。
そのHTMLファイルからみて、該当のテキストが、
../novel/sample1.txt
というパスで表される位置に仮にあったとすると・・・
外部テキスト読み込みのアクションでも、そのまま
this.loadVariables(”../novel/sample1.txt”);
と記載します。
上記のように変数で扱う場合、太字の部分がボタンからファイル名を代入される「変数」で
両端の青字は、変化しない部分なので・・・
これを、変化しない「”文字列”」と中の値が変化する「変数」部分に分けて「+」で繋ぎます。
this.loadVariables(”../novel/” +
textName + ”.txt”);
サンプルの上の例だと、変数textName は元のタイムライン上にありますから、
その場合は、さらに変数にパス(_root)をつけて、
this.loadVariables(”../novel/” + _root.textName + ”.txt”);
(^^g/~~
|
|
Response
06
|
| 2003年06月06日
(金) 20時00分> ルイ
|
|
毎日毎日お世話になります....!出来ませんでした...、、涙。
なんど書き換えたり、参考にしてやってもパスのエラー表示が出てしまいます。フォルダを変えなければうまくいくようなのですが...。
憲さんの作成されたフラッシュデータで、試しにサンプルテキストを別ディレクトリに入れて、上記にあるようにパスを指定してみたのです。それも表示されませんでした....!なぜでしょう。もうほとんど模写のように作ってしまっているんですが。お忙しいとは思います、申し訳ないのですが、別ディレクトリに入れた状態でのサンプルをつうくってもらえませんか?もう自分が情けないです...!
すいません!
|
|
Response
07
|
| 2003年06月06日
(金) 23時02分> 憲ちゃん
|
|
そもそも「パスのエラー表示」というところから、ちょっと勘違いしておられるようですよ(笑)
それが出るということは”ムービープレビュー”でテストしているということでしょうね!?
制作ファイル(fla)を”ムービープレビュー”することとは、その場でswfが作成され、
それを再生して見ていることですから、この場合は、flaファイルが保存されているフォルダが
パスの基点ということになります。
「flaファイル」と、swfを埋め込む「HTMLファイル」とが、同じフォルダでないなら、
「パスエラー」が出て当然ですし、出ても一向に構わないのです(^^g/~~
普通、そこで出来上がった「swfファイル」をコピーして、
実際にホームページとなるべき「ローカルフォルダ(サーバーのディレクトリと対)」にペーストし、
それを埋め込んだHTMLファイルを開いて動作テストしませんか(*^-^*)
「パス」は、このHTMLファイルを基点として記載しているのですから、
ここからのパスに間違いがなければ、その段階で初めて繋がるのです♪
もう少しで完成ですね、頑張ってください(*^-^*)
|
|
Response
08
|
| 2003年06月06日
(金) 23時26分> 憲ちゃん
|
|
もし、”../novel/”など、HTMLからの相対パスの書き方に自信が無い場合は・・・
(プロバイダのほうで特に制限を設けていないならですが)
http//〜から始まる絶対パスで書けば、失敗はありません!
前の文字列のところを・・・
”http://ドメインURL/novel/” + textName + 〜
この場合には、HTMLファイルやswfが、どのフォルダにあろうとも成功します(^^g/~~
例えば・・・
先に、外部テキストだけを、サーバの該当フォルダにアップしておいて、
パソコンをネット回線に繋いだままにしておけば、制作段階の「ムービープレビュー」でも
OKということです♪
|
|
Response
09
|
| 2003年06月09日
(月) 21時13分> ルイ
|
|
有難うございます!絶対パスとは全然考えもしませんでした〜!またも目からうろこです。ああ、ありがたい!また何かあったら頼りにしてます!お世話になりました〜!!
|
|