Actionscript 3 在函数中使用addChild将子级添加到先前添加的实例中

Actionscript 3 在函数中使用addChild将子级添加到先前添加的实例中,actionscript-3,flash,class,oop,adobe,Actionscript 3,Flash,Class,Oop,Adobe,我写了一个简单的函数“adone”来向stage添加东西,今天我决定让它也向其他对象添加child,但是我所做的测试函数“ad2”工作不正常。你有什么建议 package { import flash.display.MovieClip; public class main extends MovieClip { public var ui:Array = new Array; public var splz:Array = new Array; public va

我写了一个简单的函数“adone”来向stage添加东西,今天我决定让它也向其他对象添加child,但是我所做的测试函数“ad2”工作不正常。你有什么建议

package  {

import flash.display.MovieClip;

public class main extends MovieClip {
    public var ui:Array = new Array;
    public var splz:Array = new Array;
    public var pows:powsys = adone("powsz",powsys,ui,400,240);
    public var s1:powsyspsl = ad2("s1",powsyspsl,splz,100,100,"powsz");

    public function main() {

    }
    public function adone(nm,tp,lst,ex=0,ey=0) {
        nm = new tp();
        addChild(nm);
        lst.push(nm);
        nm.x = ex;
        nm.y = ey;
    }
    public function ad2(nm,tp,lst,ex=0,ey=0,par=null) {
        nm = new tp();
        par.addChild(nm);
        lst.push(nm);
        nm.x = ex;
        nm.y = ey;
    }
}

}
您正在设置第一个参数
“powsz”
,但您没有使用此参数,您只是使用
nm=new tp()来更改它当您的
adone()
函数工作时,它看起来工作正常

在这里

public var s1:powsyspsl = ad2("s1",powsyspsl,splz,100,100,"powsz");
您没有犯与“adone()”中相同的错误,因此它仍然是一个字符串变量,您试图在这里向字符串变量“powsz”添加一个子变量?我想你应该把它修好

par.addChild(nm);
但是如果你不想解决问题,但是你想让你的代码不能正常工作,你可以试试这个

public function ad2(nm,tp,lst,ex=0,ey=0,par=null) {
        nm = new tp();
        par = new tp();
        par.addChild(nm);
        lst.push(nm);
        nm.x = ex;
        nm.y = ey;
    }
所有这些东西看起来像个笑话!您的问题无法通过这种方式解决,您必须修复整个代码和逻辑。。你用了很多不必要的东西和错误的方法来做你想要的

您正在设置第一个参数
“powsz”
,但您没有使用此参数,您只是使用
nm=new tp()来更改它当您的
adone()
函数工作时,它看起来工作正常

在这里

public var s1:powsyspsl = ad2("s1",powsyspsl,splz,100,100,"powsz");
您没有犯与“adone()”中相同的错误,因此它仍然是一个字符串变量,您试图在这里向字符串变量“powsz”添加一个子变量?我想你应该把它修好

par.addChild(nm);
但是如果你不想解决问题,但是你想让你的代码不能正常工作,你可以试试这个

public function ad2(nm,tp,lst,ex=0,ey=0,par=null) {
        nm = new tp();
        par = new tp();
        par.addChild(nm);
        lst.push(nm);
        nm.x = ex;
        nm.y = ey;
    }
所有这些东西看起来像个笑话!您的问题无法通过这种方式解决,您必须修复整个代码和逻辑。。你用了很多不必要的东西和错误的方法来做你想要的

您正在设置第一个参数
“powsz”
,但您没有使用此参数,您只是使用
nm=new tp()来更改它当您的
adone()
函数工作时,它看起来工作正常

在这里

public var s1:powsyspsl = ad2("s1",powsyspsl,splz,100,100,"powsz");
您没有犯与“adone()”中相同的错误,因此它仍然是一个字符串变量,您试图在这里向字符串变量“powsz”添加一个子变量?我想你应该把它修好

par.addChild(nm);
但是如果你不想解决问题,但是你想让你的代码不能正常工作,你可以试试这个

public function ad2(nm,tp,lst,ex=0,ey=0,par=null) {
        nm = new tp();
        par = new tp();
        par.addChild(nm);
        lst.push(nm);
        nm.x = ex;
        nm.y = ey;
    }
所有这些东西看起来像个笑话!您的问题无法通过这种方式解决,您必须修复整个代码和逻辑。。你用了很多不必要的东西和错误的方法来做你想要的

您正在设置第一个参数
“powsz”
,但您没有使用此参数,您只是使用
nm=new tp()来更改它当您的
adone()
函数工作时,它看起来工作正常

在这里

public var s1:powsyspsl = ad2("s1",powsyspsl,splz,100,100,"powsz");
您没有犯与“adone()”中相同的错误,因此它仍然是一个字符串变量,您试图在这里向字符串变量“powsz”添加一个子变量?我想你应该把它修好

par.addChild(nm);
但是如果你不想解决问题,但是你想让你的代码不能正常工作,你可以试试这个

public function ad2(nm,tp,lst,ex=0,ey=0,par=null) {
        nm = new tp();
        par = new tp();
        par.addChild(nm);
        lst.push(nm);
        nm.x = ex;
        nm.y = ey;
    }
所有这些东西看起来像个笑话!您的问题无法通过这种方式解决,您必须修复整个代码和逻辑。。你使用了很多不必要的东西和错误的方法来制作你想要的东西…

将代码更改为:

package {

import flash.display.MovieClip;

public class main extends MovieClip {
    public var ui:Array = new Array  ;
    public var splz:Array = new Array  ;
    public var pows:powsys = adone("pows",powsys,ui,400,240);
    public var s1:powsyspsl = adone("s1",powsyspsl,splz,100,100,pows);

    public function main() {

    }
    public function adone(nm,tp,lst,ex=0,ey=0,par=null) {
        nm = new tp  ;
        if (par) {
            par.addChild(nm);
        } else {
            addChild(nm);
        }
        lst.push(nm);
        nm.x = ex;
        nm.y = ey;
    }
}
}
“par”var在跟踪中两次都返回null。这意味着将第二个对象添加到阶段,而不是第一个对象。

将代码更改为:

package {

import flash.display.MovieClip;

public class main extends MovieClip {
    public var ui:Array = new Array  ;
    public var splz:Array = new Array  ;
    public var pows:powsys = adone("pows",powsys,ui,400,240);
    public var s1:powsyspsl = adone("s1",powsyspsl,splz,100,100,pows);

    public function main() {

    }
    public function adone(nm,tp,lst,ex=0,ey=0,par=null) {
        nm = new tp  ;
        if (par) {
            par.addChild(nm);
        } else {
            addChild(nm);
        }
        lst.push(nm);
        nm.x = ex;
        nm.y = ey;
    }
}
}
“par”var在跟踪中两次都返回null。这意味着将第二个对象添加到阶段,而不是第一个对象。

将代码更改为:

package {

import flash.display.MovieClip;

public class main extends MovieClip {
    public var ui:Array = new Array  ;
    public var splz:Array = new Array  ;
    public var pows:powsys = adone("pows",powsys,ui,400,240);
    public var s1:powsyspsl = adone("s1",powsyspsl,splz,100,100,pows);

    public function main() {

    }
    public function adone(nm,tp,lst,ex=0,ey=0,par=null) {
        nm = new tp  ;
        if (par) {
            par.addChild(nm);
        } else {
            addChild(nm);
        }
        lst.push(nm);
        nm.x = ex;
        nm.y = ey;
    }
}
}
“par”var在跟踪中两次都返回null。这意味着将第二个对象添加到阶段,而不是第一个对象。

将代码更改为:

package {

import flash.display.MovieClip;

public class main extends MovieClip {
    public var ui:Array = new Array  ;
    public var splz:Array = new Array  ;
    public var pows:powsys = adone("pows",powsys,ui,400,240);
    public var s1:powsyspsl = adone("s1",powsyspsl,splz,100,100,pows);

    public function main() {

    }
    public function adone(nm,tp,lst,ex=0,ey=0,par=null) {
        nm = new tp  ;
        if (par) {
            par.addChild(nm);
        } else {
            addChild(nm);
        }
        lst.push(nm);
        nm.x = ex;
        nm.y = ey;
    }
}
}
“par”var在跟踪中两次都返回null。这意味着第二个对象被添加到阶段,而不是第一个对象。

未测试

package {

import flash.display.MovieClip;

public class main extends MovieClip {
    public var ui:Array = new Array;
    public var splz:Array = new Array;
    public var pows:powsys = adone(powsys,ui,400,240);
    public var s1:powsyspsl = adone(powsyspsl,ui,400,240,pows);

    public function main() {

    }
    public function adone(tp,lst,ex=0,ey=0,par=null):Object {
        var nm = new tp();
        if (par) {
            par.addChild(nm);
        } else {
            addChild(nm);
        }
        lst.push(nm);
        nm.x = ex;
        nm.y = ey;
        return nm;
    }
}
}
未经测试

package {

import flash.display.MovieClip;

public class main extends MovieClip {
    public var ui:Array = new Array;
    public var splz:Array = new Array;
    public var pows:powsys = adone(powsys,ui,400,240);
    public var s1:powsyspsl = adone(powsyspsl,ui,400,240,pows);

    public function main() {

    }
    public function adone(tp,lst,ex=0,ey=0,par=null):Object {
        var nm = new tp();
        if (par) {
            par.addChild(nm);
        } else {
            addChild(nm);
        }
        lst.push(nm);
        nm.x = ex;
        nm.y = ey;
        return nm;
    }
}
}
未经测试

package {

import flash.display.MovieClip;

public class main extends MovieClip {
    public var ui:Array = new Array;
    public var splz:Array = new Array;
    public var pows:powsys = adone(powsys,ui,400,240);
    public var s1:powsyspsl = adone(powsyspsl,ui,400,240,pows);

    public function main() {

    }
    public function adone(tp,lst,ex=0,ey=0,par=null):Object {
        var nm = new tp();
        if (par) {
            par.addChild(nm);
        } else {
            addChild(nm);
        }
        lst.push(nm);
        nm.x = ex;
        nm.y = ey;
        return nm;
    }
}
}
未经测试

package {

import flash.display.MovieClip;

public class main extends MovieClip {
    public var ui:Array = new Array;
    public var splz:Array = new Array;
    public var pows:powsys = adone(powsys,ui,400,240);
    public var s1:powsyspsl = adone(powsyspsl,ui,400,240,pows);

    public function main() {

    }
    public function adone(tp,lst,ex=0,ey=0,par=null):Object {
        var nm = new tp();
        if (par) {
            par.addChild(nm);
        } else {
            addChild(nm);
        }
        lst.push(nm);
        nm.x = ex;
        nm.y = ey;
        return nm;
    }
}
}

是的,我的目的是找出正确的方法来做这样的事情。事实上,我会删除第二个函数,只要我弄清楚这些函数是如何工作的,并用一个函数完成它们首先,我做了“public var pows:powsys=adone(“pows”,powsys,ui,400240)”,但它给了我错误,我觉得我想把child添加到一个变量中,而不是对象本身。----现在你认为最好的方法是什么?哦,我忘了提到我将添加一个“if”部分,使父选项成为可选的。你应该使用这个“powsyspsl”在“ad2(nm,tp,lst,ex=0,ey=0,par=null)”函数的“par”部分。另外,您的ad2中不需要“par=new tp();”,因此它还没有做任何事情..我教过在使用它之前有必要(某种程度上)创建一个类的新实例。对不起,我的意思是“powsys”而不是“powsyspsl”==>ad2(nm,tp,lst,ex=0,ey=0,toHERE)是的,我的意图是找出正确的方法来做这样的事情。事实上,我会删除第二个函数,只要我弄清楚这些函数是如何工作的,并用一个函数完成它们首先,我做了“public var pows:powsys=adone(“pows”,powsys,ui,400240)”,但它给了我错误,我觉得我想把child添加到一个变量中,而不是对象本身。----现在你认为最好的方法是什么?哦,我忘了提到我将添加一个“if”部分,使父选项成为可选的。你应该使用这个“powsyspsl”在“ad2(nm,tp,lst,ex=0,ey=0,par=null)”函数的“par”部分。另外,您的ad2中不需要“par=new tp();”,因此它还没有做任何事情..我教过在使用它之前有必要(某种程度上)创建一个类的新实例。对不起,我的意思是“powsys”而不是“powsyspsl”==>ad2(nm,tp,lst,ex=0,ey=0,toHERE)是的,我的意图是找出正确的方法来做这样的事情。事实上,我会删除第二个函数,只要我弄清楚这些函数是如何工作的,并用一个函数完成它们首先,我做了“public-var-pows:powsys=adone”(“p