カテゴリー
未分類

classの中でXMLのload

icon_flash8.jpgなんか昔なんかの案件で実装した気がするのだけど、今はまり中。
やりたいことはObjectベースのclassの中でxmlをsendAndLoadして、このオブジェクトの中で処理してしまいたいという感じ。たとえば

class test extends Object{
var private my_xml:XML;
function test(arg_1){
post_xml = new XML(arg_1);
my_xml = new XML();
my_xml.onLoad = function(result){
getData(this);
}
post_xml.sendAndLoad(“sample.xml”,my_xml);
}
function getData(arg){
trace([“data loaded”,arg.firstChild.childNodes.length]);
}
}

見たいな感じ。onLoadの中のgetDataの参照先の指定がどーだったか思いだせない。そもそもこういう使いかたするならMovieClipをextendsしろってか?もしくはxmlNodeとかでextendsしてXML構造の中に持たせてもいいのかもしれんが、データ構造上なんか気味悪い気がする・・・。(あーでもsetter,getterを定義しておけばそんなXMLを意識させずに使えるかな?

「classの中でXMLのload」への13件の返信

Function.callつかえばいいんじゃないでしょうか?
こんな感じで。
function test(scope, arg1) {
var post_xml = new XML(arg_1);
var my_xml = new XML();
my_xml.onLoad = function(result){
getData.call(scope, this);
}
post_xml.sendAndLoad(“sample.xml”,my_xml);
}

ありがとございます。
ただ”getData”もclassの中に収めたいんですよね・・・。この場合のscopeってインスタンスレベルじゃないんでしたっけ?

できました。
ただ”call”ではうまく動作しませんでした。ただscopeを使って

my_xml.onLoad = function(result){
scope.getData(this);
}

でやればできました。そういわれれば昔そうやって解決したような記憶が・・・・汗
ほんと助かりましたありがとうございます!(そう言えばmaxiさんの会社にいるんでしたっけ??)

これで最後にXML展開終了後にmy_xmlをdeleteしてやれば綺麗なオブジェクトの完成ーー。
あとはsetter/getter設定してオブジェクトコンポーネントの出来上がりだーー。ワーィ。

あり?うまくいきませんでしたか・・・。
ぬぁ!間違ってました(汗。
正しくは。

function test(func, scope, arg1) {
var post_xml = new XML(arg_1);
var my_xml = new XML();
my_xml.onLoad = function(result){
func.call(scope, this);
}
post_xml.sendAndLoad(“sample.xml”,my_xml);
}

Functionも一緒に投げてやらないと、動かないんでした。失礼しましたー(汗。
あ、そうですー。
maxiさんの会社にいますー。
沖縄に来る時はぜひぜひ。

あ、なるほど。
この辺タイムラインに記述するときと同じ感覚でやってよく嵌ります・・。
>沖縄に来る時はぜひぜひ。
移住したいですw

自分もよくこんな間違いばかりしてます・・・。
>移住したいですw
移住っすかー、それもいいですねー。
ぜひぜひ、一度偵察しに来てみてくださいー(笑)

コメントを残す

メールアドレスが公開されることはありません。