1

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

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

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

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

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");
        }
}}

ps 我不使用文档类。好的,如果需要,我会的。但是怎么做?

4

1 回答 1

3

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

是的 - 使用Flex SDK,您可以编写纯 ActionScript 并将其编译为可工作的 SWF。FlashDevelop是一个很好的 IDE,它利用了这一点。

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

闪光说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.
于 2013-08-02T02:38:08.067 回答