Actionscript 3 在运行时将AS3或ABC注入swf文件?

Actionscript 3 在运行时将AS3或ABC注入swf文件?,actionscript-3,flash,code-injection,Actionscript 3,Flash,Code Injection,我已经看到一些用于浏览器游戏的工具,这些工具将代码注入到swf文件中,以便自动化游戏的某些部分 我一直在读关于swf flash格式的书,我仍然不知道这是怎么可能的,也许这个程序用一个定制的flash播放器运行swf文件 如果您能在这方面指导我,我将不胜感激,这非常有趣。请尝试一下: var actionString:String = "methodAddOne"; var paramString:String = "1"; function methodAddOne(num:String):

我已经看到一些用于浏览器游戏的工具,这些工具将代码注入到swf文件中,以便自动化游戏的某些部分

我一直在读关于swf flash格式的书,我仍然不知道这是怎么可能的,也许这个程序用一个定制的flash播放器运行swf文件

如果您能在这方面指导我,我将不胜感激,这非常有趣。

请尝试一下:

var actionString:String = "methodAddOne";
var paramString:String = "1";

function methodAddOne(num:String):void{
    trace(Number(num)+1);
}

this[actionString](paramString); //trace: 2
对于参数队列:

var actionString2:String="methodAdd";
var paramString2:String="1,2,3,-6";

function methodAdd(nums:String):void{
    var params:Array= nums.split(",");
    var out=0;
    for each(var num:Number in params){
        out += num;
    }
    trace(out);
}

this[actionString2](paramString2);// returns 0
所有计算、核心方法,。。。你必须解析。非常复杂。。。 例如,尝试解析和计算“1+2+3-6”。当然,这是可能的,但很难用其他东西和数学语法

因此,更简单的方法是为所有方法提供一个基于字符串的Api 用户可以预定义使用参数

像这样:

var stackString:String = "methodAddOne(100); methodAdd(1,2,3);";

function parseFunctionsString(str:String):void
{
    //better use regExp at all the following
    var f:String = str.substring(0,str.indexOf("("));
    var p:String = str.substring(str.indexOf("(") + 1,str.indexOf(")"));
    // clean spaces // also better regExp to validate some other user mistakes - just for this test in this way
    f = f.replace(" ","");
    p = p.replace(" ","");
    //trace("** "+f+"  ("+p+")");
    if (this[f])
    {
        this[f](p);
    }
    else
    {
        trace("unknown function: "+f);
    }
    str = str.substr(str.indexOf(";") + 1,str.length - str.indexOf(";") + 1);
    if (str.length > 2)
    {
        parseFunctionsString(str);
    }
}

parseFunctionsString(stackString);
// trace:
// 101
// 6

作为一个想法。。。您好,André

我很好奇,您能发布一个链接到这个例子吗?您有没有查看过用于执行AS3的和AS3库,比如@Aaron?这个工具将ai注入游戏客户端谢谢您的回复,但我的意思是将任何其他编程语言的代码注入到运行的swf文件中