as3 calling a function in Main.as Document Class from another class

前端 未结 3 1511
天涯浪人
天涯浪人 2021-01-27 01:17

I am sure this is a popular question but I can\'t find the exact answer I need. I simply need to access a function or functions created in the Main.as document class. I have tri

3条回答
  •  礼貌的吻别
    2021-01-27 01:20

    Ok I got the following code to work. It's really a messy solution but I didn't know of a better way. It works. I just hope it's stable and does not use a lot of resources.

    If you have a much better Idea I am open.

    Here is the MainDoc.as

    package  {
    
    import flash.display.MovieClip;
    import flash.events.*;
    import com.*;
    import com.views.*;
    import flash.display.*;
    import flash.filesystem.*;
    import com.greensock.*;
    import com.greensock.easing.*;
    import flash.system.System;
    
    
    
    public class mainDoc extends MovieClip 
        {
    
        /// (Get Main Doc flow) this creates an instace of the main timeline
        /// and then I send it 
        private static var _instance:mainDoc;
        public static function get instance():mainDoc { return _instance; }
    
    
    
        /// Calls the defaultVars.as in to "vars".
        var vars:defaultVars = new defaultVars();
    
    
    
            public function mainDoc() 
            {
                /// Makes this class ready to be passed to defautVars.as
                _instance = this;
                        // Sends the _instance to defaulVars.as to be accessed later.
                vars.getMainDoc(_instance);
    
                // Calls a function in defaultVars.as and loads a var
                vars.loadButtonVars("English"); 
            }
    
        }
    }
    

    Here is the defaultVars.as

    package com {
    import flash.display.Stage;
    import flash.events.*
    import flash.net.*;
    import flash.display.*;
    import flash.filesystem.*;
    
    
    
        public class defaultVars
        {
    
    
            /// Makes the MainDoc.as a MovieClip
            // Not sure if this is good but it works. 
            public var MainDoc:MovieClip;
    
    
            public function defaultVars() 
            {
    
            }
    
            public function getMainDoc(_instance:MovieClip) 
            {
            trace("CALLED" + _instance);
                /// receives the _instance var and its converted to a MovieClip
                // This can now be used in any function because I declared it a public var. 
            MainDoc = _instance;
            }
    
    
    
    
    
    
    public function loadButtonVars(Language:String)
        {
    
    
        myLoader.load(new URLRequest("Languages/" + Language + "/vars.xml"));
        myLoader.addEventListener(Event.COMPLETE, processXML);
    
         function processXML(e:Event):void 
            {
            myXML = new XML(e.target.data);
    
            /// Home Screen Buttons
            homeT = myXML.Button.(@Title=="homeT");
            homeB1 = myXML.Button.(@Title=="homeB1");
            homeB2 = myXML.Button.(@Title=="homeB2");
            homeB3 = myXML.Button.(@Title=="homeB3");
            homeB4 = myXML.Button.(@Title=="homeB4");
            homeB5 = myXML.Button.(@Title=="homeB5");
    
    
        /// HERE IS WHERE I CALL FUNCTION from MainDoc after xml is loaded. 
        /////////////////
        trace("xml loaded!!!! " + homeB1);
        MainDoc.languageLoaded(Language);
    
    
    
            }
    
        }
    
    
    
        }
    
    }
    

提交回复
热议问题