将变量从actionscript 3传递给actionscript 2

时间:2015-06-16 20:15:46

标签: actionscript-3 actionscript-2

我有一个用AS3编写的swf加载AS2 swf。

AS3代码:

var url:String = "as2.swf?myvar=hello";
var spURL:Array = url.split("?");
var urlVars:URLVariables = new URLVariables();
urlVars.decode(spURL[1]);

var req:URLRequest = new URLRequest( spURL[0] );
req.data = urlVars;
req.method = URLRequestMethod.GET;

AS2代码:

trace(_root.myvar);

但没有追踪!

1 个答案:

答案 0 :(得分:0)

我找到了解决问题的方法。

完整源代码

AS3:使用名为“as2btn”的动画片段和名为“as3_log”的文本字段。发布类名称为“main_as3”

package  {

    import flash.display.*;
    import flash.events.*;
    import flash.net.*;

    public class main_as3 extends MovieClip {


        public var ld:Loader;

        public function main_as3() {
            // constructor code
            this.as2btn.addEventListener(MouseEvent.MOUSE_DOWN, as2Load);
            this.logMessage("Initialized!");

        }


        public function logMessage(msg:String)
        {
            this.as3_log.appendText("AS3: " + msg + "\n");
        }   

        public function as2Load(evt:MouseEvent)
        {
            if (this.ld) {
                this.ld.unloadAndStop();
                this.ld = null;
            }

            var url:String = "as2.swf?myvar=1rewr&myvar2=1234";
            var spURL:Array = url.split("?");
            var urlVars:URLVariables = new URLVariables();
            urlVars.decode(spURL[1]);

            var req:URLRequest = new URLRequest(spURL[0]);

            req.data = urlVars;
            req.method = URLRequestMethod.GET;

            this.ld = new Loader();
            this.ld.load(req);
            addChild(this.ld);
        }

    }

}

AS2:使用movieclip链接标识符“main”,类名“main_as2”包含名为“as2_log”的文本字段

class main_as2 extends MovieClip 
{
    var _parent;

    function main_as2() 
    {
        super();
        this.gotoAndStop(1);
        this.logMessage("Initialized!");
        this.logMessage("_parent.myvar: " + _parent.myvar);

    }

    function logMessage(msg:String)
    {
        this["as2_log"].text = this["as2_log"].text + "AS2: " + msg + "\n";
    }
}