# Preloading xml with a class

**URL:** <https://forum.kirupa.com/t/preloading-xml-with-a-class/227087>\
**Category:** Uncategorized\
**Created:** [May 26, 2007, 9:11pm UTC](https://forum.kirupa.com/t/preloading-xml-with-a-class/227087 "2007-05-26T21:11:40Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![alesspunk](https://avatars.discourse-cdn.com/v4/letter/a/7cd45c/32.png) [@alesspunk](https://forum.kirupa.com/u/alesspunk)\
**Post date:** [May 26, 2007, 9:11pm UTC](https://forum.kirupa.com/t/preloading-xml-with-a-class/227087/1 "2007-05-26T21:11:40Z")

</div>

hi friends

i have a preloading function countBytes() . But i dont know how properly called from my class.

i realy dont know the syntax

my class

```php

class LanguageManager {
    public static var LANG:Array;
    private static var _instance:LanguageManager = null;
    private var _xmlPath:String;
    private var _xmlDoc:XML;
    // constructor 
    private function LanguageManager() {
        // empty
    }
    // function getLanguageManager()
    public static function getLanguageManager():LanguageManager {
        if (LanguageManager._instance == null) {
            LanguageManager._instance = new LanguageManager();
        }
        return LanguageManager._instance;
    }

    //preload function

    private function countBytes() {
        var loadedBytes = _xmlDoc.getBytesLoaded();
        var totalBytes = _xmlDoc.getBytesTotal();
        var bytes = Math.ceil((loadedBytes/1024)*1000);
        var percentLoad = Math.ceil((loadedBytes/totalBytes)*100);
        _root.loader_mc.totalBox.text = bytes+" bytes";
        _root.loader_mc.loadBox.text = percentLoad+" %";
        if (loadedBytes>=totalBytes) {
            percentLoad = 101;

        }
    }

    // function init()

    public function init(lang:String):Void {
        _xmlPath = "xml/"+lang+".xml";
        loadXMLFile();
    }

    // function loadXMLFile()

    private function loadXMLFile():Void {
        var _this:LanguageManager = this;
        _xmlDoc = new XML();
        _xmlDoc.ignoreWhite = true;
        _xmlDoc.onLoad = function(success:Boolean):Void {
            if (success) {
                _this.xml2Array();
                _xmlDoc.getBytesLoaded();
            }
        };
        _xmlDoc.load(_xmlPath);
    }

    // function xml2Array()+

    private function xml2Array() {
        LanguageManager.LANG = new Array();
        // loop through nodes
        for (var i:Number = 0; i<_xmlDoc.firstChild.childNodes.length; i++) {
            var node:XML = _xmlDoc.firstChild.childNodes*;
            var nodeName:String = node.nodeName;
            var val:String = node.firstChild.nodeValue;
            LanguageManager.LANG[nodeName] = val;
        }
        // continue with your application 
        Main.getMain().doSomething();
    }
}

```

calling from the first frame in timeline

```php

//Inii LANGUAGE

var defaultLanguage:String = "en";
Main.getMain().init(this, defaultLanguage);

//PRELOAD XML IN FIRST FRAME
countBytes();

```

also i have a enter frame function in a movie clip to preload my root

```php

stop();
//PRELOAD ROOT IN MC
onEnterFrame = function () {
    totalBytes = _parent.getBytesTotal() + _parent.Main._xmlDoc.getBytesTotal();
    loadedBytes = _parent.getBytesLoaded() + _parent.Main._xmlDoc.getBytesTotal();
    percent = Math.ceil((loadedBytes/totalBytes)*100);
    gotoAndStop(percent);
    info_txt.text = percent+" %";
    if (percent>=100) {
        _parent.gotoAndPlay("Go");
        delete onEnterFrame;
    } 
};

```

I got no exit!!

please any advice…i will be very aprreciate!

:hangover:
