【问题标题】:Passing variables from actionscript 3 to actionscript 2将变量从动作脚本 3 传递到动作脚本 2
【发布时间】:2015-09-01 20:18:14
【问题描述】:

我有一个用 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);

但没有任何痕迹!

【问题讨论】:

    标签: actionscript-3 actionscript-2


    【解决方案1】:

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

    完整源代码如下

    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:带有影片剪辑链接标识符“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";
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2010-12-09
      • 2016-03-27
      • 2016-01-23
      • 2010-12-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-08
      • 2016-10-29
      相关资源
      最近更新 更多