AS3类files.as如何与FLA文件一起使用?

时间:2013-08-02 02:23:17

标签: actionscript-3 flash class

我有两个问题:我可以使用* .as文件编写应用程序,然后在SWF中以某种方式编译它们吗? (我现在正在制作一个网页)

其次,请查看代码,我的问题是一样的 - 我无法将文本字段渲染到舞台上,以便可见。

Flash说'未定义方法addChild'。和'通过带有静态类型Class的引用访问未定义的属性tekstuKaste。'

这是一个构造函数类型inic,它有点用于初始化,我所做的就是,我通过ActionScript在FLA文件中创建一个THIS类的实例,并期望所有应用程序都能正常工作。

package {    
import pacinas.visuals.*;


    import pacinas.visuals.AE_kanva;

    public class inic {

        public function inic() {
            trace("===========");
            trace("inicializēt un izsaukt visu no Kanvas klases");
            trace("===========");
            trace(" ");
            var kanvas:AE_kanva = new AE_kanva();
            trace(" ");
            kanvas.varis();
            trace(" ");
            trace("===========");
            trace("inicializēt un izsaukt visu no Lauki klases");
            trace("===========");
            trace(" ");
            var laukiTxt:BE_tekstaLaukiPrimitive = new BE_tekstaLaukiPrimitive();
            trace("");
            laukiTxt.simpleText();
                addChild(BE_tekstaLaukiPrimitive.tekstuKaste);
            }

    }

}

还有另一个外部课程我希望放置一个矩形 - 这也不起作用。例如:

package pacinas.visuals
{    
    import flash.display.Sprite;
    public class AE_kanva extends Sprite 
    {
        public function AE_kanva()
        {
        var kvad:Shape = new Shape();       
        kvad.graphics.beginFill(0xFF0000);
        kvad.graphics.drawRect(0, 0, 100,100);
        kvad.graphics.endFill();
        addChild(kvad);     
        trace("konstruktors - zīmē kanvu");
        }
        public function varis()
        {
            trace("te glabaas variaabljus");
            var ff:int = 4;
            var dd:int = 8;
        }
    }

}

这是我希望为我制作文本框的课程(稍后用XML填写)

package pacinas.visuals

{
import flash.text.*;
import flash.display.Sprite;

    public class BE_tekstaLaukiPrimitive extends Sprite
    {
        public var tekstuKaste:TextField = new TextField();
        private var kontinents:String = new String ("XML SATURU CMON! a123");

        public function BE_tekstaLaukiPrimitive():void
        {
            trace("teksta rāmis = konstruktora klase");
            addChild(tekstuKaste); <--CAN'T GET THIS TO WORK!!!
            tekstuKaste.text = kontinents;
        }
        public function simpleText()
        {
            trace("nekonstruktora f-cija no Teksta lauki");
        }
}}

P.S。我不使用文档类。好的,如果需要,我会的。但是如何?

1 个答案:

答案 0 :(得分:3)

  

我可以只使用* .as文件编写应用程序,然后以某种方式将它们编译成SWF吗?

是的 - 使用Flex SDK,你可以编写纯ActionScript并将其编译成一个正常工作的SWF。 FlashDevelop是一个很好的IDE,可以利用这一点。

但是,您需要了解文档类的工作原理。

  

Flash说undefined method addChild.Access of undefined property tekstuKaste through a reference with static type Class.

在您的代码中,此行导致您的问题:

addChild(BE_tekstaLaukiPrimitive.tekstuKaste);

第一个错误undefined method addChild是因为您的类inic没有扩展实现方法addChild()的类。 DisplayObjectContainer定义了此方法,因此您需要将其扩展为最低限度,如下所示:

public class inic extends DisplayObjectContainer

第二个错误是因为您尝试访问类BE_tekstaLaukiPrimitive的属性,就好像它是静态的一样。我怀疑你真正想做的是这个:

addChild(laukiTxt); // laukiTxt is the instance you created.