【问题标题】: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";
}
}