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

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   どこでもFlash【携帯向けFlash関連】
     loadVariablesとgetURLについて
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
kaeru1975
Åê¹ÆNo.32736
投稿日時: 2007-4-3 16:02
新米
居住地:
投稿: 6
使用環境:
WinXP,Flash8pro,Flash lite 1.1,SH903i
loadVariablesとgetURLについて
 はじめまして。
 Flash lite 1.1にて、携帯用のサイトメニューを作成しているのですが、煮詰まってしまったために解決のヒントを得たく思い、投稿させていただきました。また、ActionScriptの理解がまだ浅く、そのため投稿内容および状況説明に不備がございましたら、ご容赦下さいますようお願いいたします。

 煮詰まってしまった部分というのは、
・外部テキストからURLを読み込み
・getURLからリンクさせる
という部分です。

 とりあえず、外部テキストの読み込みをテストしてみました。

・test.txtを用意、中に「&URL1=http://hogehoge.jp/&」を記述
・flashのステージにボタンとダイナミックテキストエリアを設置
・同ダイナミックテキストエリアに変数「url1」を記述
・ボタンをステージに配置し、アクションに

on (keyPress "<Enter>") {
loadVariables ("test.txt",_root);
}

と記述

・Flash lite1.1で書き出したtest.swfとtest.txtをサーバーにアップロード

 以上を行い、携帯でアクセスして確認したところ(SH903i)、ボタンを押すとダイナミックテキストエリア内には「http://hogehoge.jp/」と表示されたので、外部テキストの読み込みはうまくいっているようでした。

 次に、読み込んだ変数url1を

・ボタンのアクション
on (keyPress "<Enter>") {
loadVariables ("test.txt",_root);
getURL(url1);
}

としてgetURL内に入れてみたところ、
・ダイナミックテキストに何も表示されない
http://hogehoge.jp/にもアクセスしない

となりました。

 そこで、

・ボタンのアクション
on (keyPress "<Enter>") {
getURL(http://hogehoge.jp);
}

というふうに書き換えてみると、http://hogehoge.jpにアクセスしました。

 ひょっとしたら、ボタンのアクションは一つ(もしくは一回のアクション)につき、一つのアクションしか行われないということなのでしょうか?

 実は、ボタンアクションからのリンク先を随時変更するので、その度にflaファイルを編集することを避けたく、外部ファイルを書き換えるだけでflashからのリンク先が変更できるようにしたい、とやってみたのですが、煮詰まってしまいました。

 どなたか、この件に関して解決の糸口をお持ちでしたら、よろしくお願いいたします。
ゲスト
Åê¹ÆNo.32737
投稿日時: 2007-4-3 16:08
Re: loadVariablesとgetURLについて
loadVariables ("test.txt",_root);
の直後に同一イベント内で
getURL(url1);
となっているため、まだ"test.txt"の内容が_rootに読み込まれてないうちにgetURLされているのではないでしょうか。

loadVariables とgetURL を別のキーイベントに入れて試してみては?
kaeru1975
Åê¹ÆNo.32738
投稿日時: 2007-4-3 17:30
新米
居住地:
投稿: 6
使用環境:
WinXP,Flash8pro,Flash lite 1.1,SH903i
Re: loadVariablesとgetURLについて
 ご返信、ありがとうございます。

引用:

hiro23さんは書きました:
loadVariables ("test.txt",_root);
の直後に同一イベント内で
getURL(url1);
となっているため、まだ"test.txt"の内容が_rootに読み込まれてないうちにgetURLされているのではないでしょうか。

loadVariables とgetURL を別のキーイベントに入れて試してみては?


 ありがとうございます。
 ボタンを二つにわけて、
 ・ボタン1にアクション「loadVariables ("test.txt",_root);」
 ・ボタン2にアクション「getURL(url);」
 ・確認のためにダイナミックテキストフィールドに変数url1をステージに記述

をためしてみたところ、ボタン1のアクションはうまくいったみたいで、テキストフィールドにtest.txtの内容が表示されました。
 このことから、外部ファイルの変数読み込みも終了した、と考えられますので、ボタン2を押してみたところ、FLASHが読み込みをしたみたいなのですが(通信マークが点滅したため)、表示上は何も変化がありませんでした。

 ひょっとしたら、getURL()の中身に入るべき変数がちゃんと入っていないのではと思い、原因はパスかな?として
 
 on(keyPress"<Enter>"){
getURL(url1,_root);
}

という風にやってみましたが、結果は同じでした。

 しかし、キーイベントの個数(もしくはアクションの数)ではなく「getURL()の中身に入るべき変数がちゃんと入っていない」らしいというとこまで分かりました。

 もう少し、試行錯誤を繰り返してみます。
 何か分かりましたら、フィードバックいたします。

 ありがとうございました。 
tyamada
Åê¹ÆNo.32742
投稿日時: 2007-4-3 19:42
半人前
居住地: 東京都
投稿: 34
使用環境:
Win7, Flash CS5.5
Re: loadVariablesとgetURLについて
こんばんは

変数名が「url」だったり「url1」だったりしていますので、まずはどちらかに統一した方がよいかと思います。

引用:
on(keyPress"<Enter>"){
getURL(url1,_root);
}

の「_root」とは何でしょう?
通常ここはStringで指定するハズです。
kaeru1975
Åê¹ÆNo.32744
投稿日時: 2007-4-3 20:08
新米
居住地:
投稿: 6
使用環境:
WinXP,Flash8pro,Flash lite 1.1,SH903i
Re: loadVariablesとgetURLについて
ご返信ありがとうございます。

引用:

tyamadaさんは書きました:


変数名が「url」だったり「url1」だったりしていますので、まずはどちらかに統一した方がよいかと思います。


こちらすいませんでした。
記述ミスです。flaファイル上はurl1で統一しておりますので、ここが問題ではない、と思います。

引用:
on(keyPress"<Enter>"){
getURL(url1,_root);
}

の「_root」とは何でしょう?
通常ここはStringで指定するハズです。


ここは

・getURL(url1);

でうまくいかなかったので、
loadVariablesで_rootに読み込んだ変数を、_rootから引っ張ってくるという意味でためしに書いてみました。結果的に意味がなく、構文上まったく正しくなかったのですが。で、stringというものが文字列というぐらいしか認識なかったので、検索してみましたが、検索してみても、空のストリングか、windowを指定する、といった説明があったのですが、「””」と携帯向けのものなので、特に必要はないのではないようでした。

ご指摘ありがとうございました。
けと
Åê¹ÆNo.32769
投稿日時: 2007-4-4 14:16
新米
居住地: おおさか
投稿: 20
使用環境:
.4.8
 
XP
 
Re: loadVariablesとgetURLについて
こんにちは、けとです。

まず、loadVariables, loadVariablesNum, loadMovie, loadMovieNum, getURLは
1アクションにつき1つしか有効になりません
auのオーサリングガイドラインの付録Aに記載があります。
kaeru1975さんのように書いたとしたら、Flash8で制作し、プレビューで<Enter>を押した際
「FTPA005: キー入力ごとに複数の要求があったため、http://? に対する GetURL の呼び出しは無視されました。」
というエラーが出るはずですが…

また、loadVariables, loadVariablesNum, loadMovie, loadMovieNumは
値を読み込むのにある程度時間が必要で、
読み込んでいる間も、スクリプトの処理は進んでしまいます。
読み込んだ値を使うためには、
先にhiro23さんがおっしゃった通り、
まず、読み込んだかどうかを調べることが必要になります。
受け取るデータが少なければ、時間もそんなにかからないので、
loadVariablesのボタンとgetURLのボタンを別々のフレームにおけば、
希望の動作になるとは思いますが、厳密にやるなら
loading用のフレーム(【例】ラベル名:loading、2フレーム)用意して

・1フレーム目はurlに値があったら、getURLのボタンを設置した
 フレームに移動するようなスクリプトを書く
・2フレーム目はgotoAndPlay(_currentframe-1)のように書いて
 ループするようにする

こんな感じにして
on (keyPress "<Enter>") {
  loadVariables ("test.txt",_root);
  gotoAndPlay("loading");
}


のようにすれば、値が読み込まれたかどうか、確実にわかるとおもいます。
もっといい方法があるかもしれませんが、ご参考になれば。

あと、getURL()の第2引数ですが、ヘルプにもあると思いますが、
例えば別のウインドウにページを表示させる時に必要なものです。
携帯では複数のウインドウを同時に開くことはないので
必要ないんですけど

長々書きましたが、がんばってください!!
kaeru1975
Åê¹ÆNo.32775
投稿日時: 2007-4-4 16:47
新米
居住地:
投稿: 6
使用環境:
WinXP,Flash8pro,Flash lite 1.1,SH903i
Re: loadVariablesとgetURLについて
ご返信ありがとうございました!

まずは、ご報告です。

引用:
loadVariablesのボタンとgetURLのボタンを別々のフレームにおけば、
希望の動作になるとは思います


こちらを参考に試したところ、
無事できました。ありがとうございました!
やはり、外部ファイルを読み込むフレームと、getURLするフレームは分けないといけないみたいでした。

引用:
まず、loadVariables, loadVariablesNum, loadMovie, loadMovieNum, getURLは
1アクションにつき1つしか有効になりません
auのオーサリングガイドラインの付録Aに記載があります。


不勉強、申し訳ありませんでした。
ガイドラインの詳細に目を通していませんでした。

実は、色々とやってみるうちに、もしかしたらと思って、

・1フレーム目・ステージにボタンを二個配置し、

ボタン1

on (keyPress "<Enter>") {
loadVariables ("test.txt",_root);
}

とアクションを記述

ボタン2

on (keyPress "<Enter>") {
 getURL("http://hogehoge.jp/");
}

とアクションを記述しました。

これなら、ボタン1の読み込みが失敗したとしても、ボタン2でサイトにアクセスするはずなのですが、なぜかアクセスしませんでした。
(web上でSH903iでテスト)

このことから、1アクションにつき1つが有効だけではなく、同一フレーム上で1つ有効、ということなのかもしれません。もちろん、他の端末で調査したわけではないので、なんともいえないですが。


引用:
Flash8で制作し、プレビューで<Enter>を押した際
「FTPA005: キー入力ごとに複数の要求があったため、http://? に対する GetURL の呼び出しは無視されました。」
というエラーが出るはずですが…


こちらなのですが、
ムービープレビューはFlash Liteのボタンアクションやfscommand2までサポートしていないみたいです。

FTPE001: キーは処理されません : Return ASCII 値 : 13

エラー内容もこれしか出ませんので、もっぱらPC確認はiモードHTMLシュミレーターでやってます。


引用:

・1フレーム目はurlに値があったら、getURLのボタンを設置した
 フレームに移動するようなスクリプトを書く
・2フレーム目はgotoAndPlay(_currentframe-1)のように書いて
 ループするようにする

こんな感じにして

on (keyPress "<Enter>") {
loadVariables ("test.txt",_root);
gotoAndPlay("loading");
}


 丁寧にソースまで書いていただきありがとうございました。

引用:

・1フレーム目はurlに値があったら、getURLのボタンを設置した
 フレームに移動するようなスクリプトを書く


の部分には、
・test.txtで読み込む変数群の最後の変数に&end=1&と記述し、
・endの部分が空白であれば、フレームラベルのloadingにいく
・1が入ったらフレームラベルのkaisiにいく

引用:

if(end == ""){
gotoAndPlay("loading");
}else if(end == 1){
gotoAndPlay("kaisi");
}


という風にしました。
1アクション増えてしまいましたが、とりあえずの目的の動きはできそうです。

けとさん、ありがとうございました。
またhiro23さん tyamadaさん、ありがとうございました。
けと
Åê¹ÆNo.32782
投稿日時: 2007-4-4 21:24
新米
居住地: おおさか
投稿: 20
使用環境:
.4.8
 
XP
 
Re: loadVariablesとgetURLについて
解決されたようでなによりです

でも、自分のしくじりをいろいろ見つけてしまったので訂正します。

まず、DoCoMoだったんですね…環境書いてあるし…
すいません、うっかりしてました。
で、DoCoMoのCDKを見てみたら、2章とか3章とかに同じことが書いてましたので
ほっと一安心

引用:

Flash8で制作し、プレビューで<Enter>を押した際
「FTPA005: キー入力ごとに複数の要求があったため、http://? に対する GetURL の呼び出しは無視されました。」
というエラーが出るはずですが…


こちらなのですが、
ムービープレビューはFlash Liteのボタンアクションやfscommand2までサポートしていないみたいです。



すいません、少し言葉足らずでした。
私のところで、ですが、
Flash 8 proで、パブリッシュでの書き出しのバージョンを『Flash lite1.1』にすると、
プロパティウインドウでデバイスの設定ができるのです。
コンテンツタイプ、端末をを設定して、ムービープレビューすると、
いろいろな端末のエミュレーターが使えて、そこで先のようなエラーが確認できるんです。

エミュレーター使うのに、何かしたかなあ…
ちょっと覚えてないです。すいません。

あと
引用:
・1フレーム目・ステージにボタンを二個配置し、

ボタン1

on (keyPress "<Enter>") {
loadVariables ("test.txt",_root);
}

とアクションを記述

ボタン2

on (keyPress "<Enter>") {
 getURL("http://hogehoge.jp/");
}

とアクションを記述しました。

これなら、ボタン1の読み込みが失敗したとしても、ボタン2でサイトにアクセスするはずなのですが、なぜかアクセスしませんでした。

は、試してみたところ、別のボタンで同じキーにアクションを設定してた場合、
重ね順が下のものが適用されるようです。
トライアンドエラーの結果なので、きちんとした理由付けができないのですが…

あー、もっと気をつけて書かなきゃ
kaeru1975
Åê¹ÆNo.32793
投稿日時: 2007-4-5 20:26
新米
居住地:
投稿: 6
使用環境:
WinXP,Flash8pro,Flash lite 1.1,SH903i
Re: loadVariablesとgetURLについて
 いえ、こちらこそありがとうございました。


引用:
けとさんは書きました:
で、DoCoMoのCDKを見てみたら、2章とか3章とかに同じことが書いてましたので
ほっと一安心


 こちら読んでみたら、ありました。
 本当に、お騒がせしました。
 でも、正直分かりにくい記述の仕方ですよね…。

引用:
Flash 8 proで、パブリッシュでの書き出しのバージョンを『Flash lite1.1』にすると、
プロパティウインドウでデバイスの設定ができるのです。
コンテンツタイプ、端末をを設定して、ムービープレビューすると、
いろいろな端末のエミュレーターが使えて、そこで先のようなエラーが確認できるんです。


 端末エミュレーターは単純なキー操作やFLASH4ベースのアクションスクリプトはサポートしているみたいなのですが、FScommand系はやっぱりダメみたいで、ついつい画面表示領域ぐらいしか使わなくなってたんですよね…。あと、

引用:
Flash8で制作し、プレビューで<Enter>を押した際
「FTPA005: キー入力ごとに複数の要求があったため、http://? に対する GetURL の呼び出しは無視されました。」
というエラーが出るはずですが…

 
 確認したら、このエラーメッセージ出ていました!
 申し訳ありませんでした。


引用:
引用:
・1フレーム目・ステージにボタンを二個配置し、

ボタン1

on (keyPress "<Enter>") {
loadVariables ("test.txt",_root);
}

とアクションを記述

ボタン2

on (keyPress "<Enter>") {
 getURL("http://hogehoge.jp/");
}

とアクションを記述しました。

これなら、ボタン1の読み込みが失敗したとしても、ボタン2でサイトにアクセスするはずなのですが、なぜかアクセスしませんでした。

は、試してみたところ、別のボタンで同じキーにアクションを設定してた場合、
重ね順が下のものが適用されるようです。
トライアンドエラーの結果なので、きちんとした理由付けができないのですが…


 こちらの方でも、試した結果であって仕様書に書いてあったわけじゃないことばかりで、困ってます。というか、FLASHはFLASH LITEから入ったので、普通にPC向けのFLASHやっている人には常識なことすらも、分からなかったり…。もう少し基礎的なことも勉強しないと、って感じです。
 あと、こちらも誤字・脱字、見逃しとかあったですし
 今後は、お互い気をつけていきましょう
 何はともあれ、ありがとうございました。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

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