将变量从动作脚本 3 传递到动作脚本 2
Posted
技术标签:
【中文标题】将变量从动作脚本 3 传递到动作脚本 2【英文标题】:Passing variables from actionscript 3 to actionscript 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);
但没有任何痕迹!
【问题讨论】:
【参考方案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";
【讨论】:
以上是关于将变量从动作脚本 3 传递到动作脚本 2的主要内容,如果未能解决你的问题,请参考以下文章