mieki256's diary



2005/11/19() [n年前の日記]

#3 [flash] 毎回 new XML() する必要は無かった

_20005/11/17の日記 でメモしてた、XML読み込みのコードはちょっと無駄があった。毎フレーム new XML() しなくてもいいみたい。
// ========================================
// フレーム1 に記述

enemy_length = 0;
xml_length = 0;
load_status = 0;

// image に付随する情報。xml で渡される。
var enemy_name      = new Array();
var enemy_imgpathA  = new Array();
var enemy_nodeValue = new Array();

// XML読み込み用変数の設定
myxml = new XML();
myxml.onLoad = myXmlOnLoad;
myxml.ignoreWhite = true;   // XML中のホワイトスペースを無視

// ----------------------------------------
// 以下は後で呼ばれる
// 敵情報の格納をする関数
function setEnemyData(n) {
    enemy_name.push(n.attributes.name);
    enemy_imgpathA.push(n.attributes.jpegURL);
    enemy_nodeValue.push(n.firstChild.nodeValue);
}

// ムービークリップにJPEG画像を読むための関数
function updateImg(n) {
    img_name    = enemy_name[n];
    img_path    = enemy_imgpathA[n];
    img_nvalue  = enemy_nodeValue[n];

    loadMovie(img_path, this.targetClip);
}

// xml がロードできたときに呼ばれる関数
function myXmlOnLoad(success) {
    if ( success ) {
        //エラーが出ることなくXMLドキュメントがロードされた。
        
        rn = myxml.firstChild;
        xml_length = rn.childNodes.length;
        node = rn.firstChild;

        // xml の内容を、敵データ用配列に格納
        do {
            setEnemyData(node);             // 格納
            nextnode = node.nextSibling;    // 次のノードを求める
            node = nextnode;
        } while ( node != null );

        enemy_length = enemy_name.length;
        
        load_status = 1;
    } else {
        //XMLドキュメントがロードされなかった。
        load_status = -1;
    }
}

// ========================================
// フレーム2 に記述

load_status = 0;

// xml 読み込み開始
myxml.load("card9_utf8.xml");

// ========================================
// フレーム3 に記述

if ( load_status != 0 ) {
    if ( load_status == 1 ) {
        this.gotoAndPlay("loadsuccess");
    } else {
        this.gotoAndPlay("loaderror");
    }
}

// ========================================
// フレーム4 に記述

this.gotoAndPlay( _currentframe - 1 );

以上です。

過去ログ表示

Prev - 2005/11 - Next
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project