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

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   ActionScript 3.0 特設会議室
     外部XMLから取得したデータを関数から抜けても消えないようにする
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
yuki8
Åê¹ÆNo.46239
投稿日時: 2010-10-29 15:14
新米
居住地:
投稿: 29
使用環境:
WindowsVista
Flash professional CS5
AS3.0
外部XMLから取得したデータを関数から抜けても消えないようにする
トピックを立てさせていただきます。


引用:
間違っています。
関数から抜けても、消えないようにすれば、消えません。
「当然」ではありません。


というご指摘をいただいたのですが,具体的にどのような方法がありますでしょうか。



引用:

var txtLoader:URLLoader = new URLLoader();
var urlReq:URLRequest = new URLRequest("sample.xml");

txtLoader.load(urlReq);
txtLoader.addEventListener(Event.COMPLETE, onLoaded);

var len:int;
function onLoaded(eventObj:Event):void{

    var item:XML;
    var xmlObj:XML = new XML(txtLoader.data);
    var titleList:XMLList = xmlObj.titles;

len = titleList.length();


}


XMLには本のタイトル名が記載されています。
引用:

<mydata>
  <titles>あいうえお</titles>
  <titles>かきくけこ</titles>
  <titles>さしすせそ</titles>
  <titles>たちつてと</titles>
  <titles>なにぬねの</titles>
</mydata>



変数titleListのデータや,titleList.length()の値を関数から抜けても消えないようにしたいと考えています。



ひろゆき
Åê¹ÆNo.46240
投稿日時: 2010-10-29 15:42
ちょんまげら
居住地: 東京砂漠
投稿: 4403
使用環境:
10.8.5

Flash Professional CS4/CS6/CC

Safari 6.1
Re: 外部XMLから取得したデータを関数から抜けても消えないようにする
まず、第一に、「外部テキストから取得したデータの変数値を、関数外で使いたい」でいただいている
野中さんの回答には、返答されないのでしょうか。

というか、新たにスレッドを立てる前に、
投稿したスレッドにレスをつけて、閉じるべきだと思いますが。


次に、少なくとも、関数うんぬん以前に、XMLの読み込みが完了したのちに、
そのデータが扱えない
XMLの読み込みが完了したのちでなければ、そのデータが扱えない、ということを理解されているのでしょうか?
# 前回同様、Javaうんぬんを持ち出されるのであれば、
# ActionScriptを触るのはおやめになった方が良いのでは?
# Javaとは考え方を変える必要があるように思いますが。

そのため、どのタイミングで、得られたデータを利用するのか、
第三者にも説明する必要があります。
つまり、具体的にどのように利用したいのか明らかにしていないのに、
具体的な方法を示せというのはおかしな話です。

一応、サンプルスクリプトを。
var txtLoader:URLLoader = new URLLoader();
var urlReq:URLRequest = new URLRequest("sample.xml");

txtLoader.load(urlReq);
txtLoader.addEventListener(Event.COMPLETE, onLoaded);

var titleList:XMLList;
var len:int
function onLoaded(eventObj:Event):void{
	var xmlObj:XML = new XML(txtLoader.data);
	titleList = xmlObj.titles;
	len = titleList.length();
	trace(titleList);
	trace(len);
	setup();
}

function setup():void {
	trace("setup");
	trace(titleList);
	trace(len);
}

var btn:Sprite = new Sprite();
addChild(btn);
btn.x = 10;
btn.y = 10;
btn.graphics.beginFill(0xFF0000);
btn.graphics.drawRect(0, 0, 60, 40);
btn.graphics.endFill();
btn.addEventListener(MouseEvent.CLICK, click, false, 0, true);
function click(evt:MouseEvent):void {
	trace("click");
	trace(titleList);
	trace(len);
}


----------------
質問する際は、回答者に具体的な情報を与えてください。

野中文雄
Åê¹ÆNo.46241
投稿日時: 2010-10-30 0:11
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: 外部XMLから取得したデータを関数から抜けても消えないようにする
「具体的に」参照されたスレッドのやりとりや、紹介されたドキュメントをよく読んで理解することが何より大切です。そのうえでおわかりにならない点があれば、それを明らかにしてご質問ください。
引用:
yuki8さんは書きました:
引用:
間違っています。
関数から抜けても、消えないようにすれば、消えません。
「当然」ではありません。


というご指摘をいただいたのですが,具体的にどのような方法がありますでしょうか。


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

yuki8
Åê¹ÆNo.46252
投稿日時: 2010-11-1 11:45
新米
居住地:
投稿: 29
使用環境:
WindowsVista
Flash professional CS5
AS3.0
Re: 外部XMLから取得したデータを関数から抜けても消えないようにする
たいへん失礼しました。



引用:
# 前回同様、Javaうんぬんを持ち出されるのであれば、
# ActionScriptを触るのはおやめになった方が良いのでは?
# Javaとは考え方を変える必要があるように思いますが。


今回JAVAについて考えたわけではなく,単純に取得したデータを別のタイミングで利用したいと思いまして。。
しかしXMLの読み込みが完了したのちに、そのデータが扱えないということを知りませんでした。
サンプルスクリプトでもtitleListはnullに,lenは0になってしまいます。
やはり使いたいタイミングでまたXMLを読み込むべきなのですね。



ラベルをinit,part1,part2,part3,part4と作り,
initでXMLのデータをすべて取得してstop()させておき,
ボタンなどで別ラベル(part3など)に移動したときにそのpart用のデータを使いたいと考えていました。

その都度読み込むと時間がかかってしまうので,最初に読み込むだけで済ませたいと思いまして。。
ひろゆき
Åê¹ÆNo.46253
投稿日時: 2010-11-1 12:25
ちょんまげら
居住地: 東京砂漠
投稿: 4403
使用環境:
10.8.5

Flash Professional CS4/CS6/CC

Safari 6.1
Re: 外部XMLから取得したデータを関数から抜けても消えないようにする
引用:
しかしXMLの読み込みが完了したのちに、そのデータが扱えないということを知りませんでした。

失礼いたしました。間違っていますね。
XMLの読み込みが完了したのちでなければ、そのデータが扱えない」が正しいです。

次に、sample.xml
<mydata>
  <titles>あいうえお</titles>
  <titles>かきくけこ</titles>
  <titles>さしすせそ</titles>
  <titles>たちつてと</titles>
  <titles>なにぬねの</titles>
</mydata>
を用いれば、サンプルスクリプトでも、きちんと表示されますが。

titleListはnullに,lenは0になるのは、XMLが質問されたものと異なるもので試されているからでは?

複雑なことをする前に、基本的なことを学ぶ必要があるのでは?

また、第三者に分かるような説明をしないと、回答できません。
引用:
ラベルをinit,part1,part2,part3,part4と作り,
initでXMLのデータをすべて取得してstop()させておき,
ボタンなどで別ラベル(part3など)に移動したときにそのpart用のデータを使いたいと考えていました。

「ラベル」とは何でしょうか?
「フレームラベル」のことであれば、そのように明示すべきです。
「part用のデータ」とか、あなたご自身は把握されても、
客観的に何を指しているのか明確にされないと、回答者には何のことか分かりません。


----------------
質問する際は、回答者に具体的な情報を与えてください。

yuki8
Åê¹ÆNo.46254
投稿日時: 2010-11-1 13:36
新米
居住地:
投稿: 29
使用環境:
WindowsVista
Flash professional CS5
AS3.0
Re: 外部XMLから取得したデータを関数から抜けても消えないようにする
ご指摘ありがとうございます。
XMLの内容を変更したまま実行していました;



申し訳ありません,サンプルを読んでいてバカなミスに気付きました。。。

「XMLの読み込みが完了したのちでなければ、そのデータが扱えない」ということは理解しており,
読み込みが完了してから実行するようにEvent.COMPLETEを使用していたのですが,

同じフレームに直接trace(len);を書いてしまっていました。
そちらのほうが先に処理されるので0やnullがでていたのは当然でした
なんで気付かなかったんだろう;
解決しました。ありがとうございます。


引用:
「ラベル」とは何でしょうか?
「フレームラベル」のことであれば、そのように明示すべきです。
「part用のデータ」とか、あなたご自身は把握されても、
客観的に何を指しているのか明確にされないと、回答者には何のことか分かりません。

失礼しましたフレームラベルの事です。
そうですよね,客観的に読むとさっぱりわかりませんでした。
次はもっときちんと書かせていただきます。



ありがとうございました。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

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