Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 课程-新手在“这个”课程_Actionscript 3 - Fatal编程技术网

Actionscript 3 课程-新手在“这个”课程

Actionscript 3 课程-新手在“这个”课程,actionscript-3,Actionscript 3,我上课很新。下面是创建StageObject类的尝试,我可以设置宽度、高度、xy和背景色 package { import flash.display.MovieClip; public class StageObjects extends MovieClip { public function StageObjects() { // constructor code }

我上课很新。下面是创建StageObject类的尝试,我可以设置宽度、高度、xy和背景色

 package 
    {
        import flash.display.MovieClip;



public class StageObjects extends MovieClip
    {


        public function StageObjects()
        {
            // constructor code
        }
        public function setUpStageObject(w:int, h:int, X:int, Y:int, color:Number):void
        {
            this.width = w;
            this.height = h;
            this.x = X;
            this.y = Y;

            this.cacheAsBitmap = true;
            this.graphics.beginFill(color,1);
            this.graphics.drawRect(0,0,w,h);
            this.graphics.endFill();
            this.opaqueBackground = color;
            trace("parameters: " + w + " - " + h + " - " + X + " - " + Y + " - " + color);


        }

        /*~~~ adjust position and scale functions ~~~*/
        public function adjustXY(ch:Object, par:Object):void
        {
            var w = par.width;
            var h = par.height;

            ch.x = par.x + (w - ch.width) / 2;
            ch.y = par.y + (h - ch.height) / 2;
        }

        public function adjustWH(ch:Object, par:Object):void
        {
            var w = par.width;
            var h = par.height;

        }

    }

}
在主时间线闪存中,我执行以下操作:

var titleBkg:StageObjects = new StageObjects();
titleBkg.setUpStageObject(imageBoxWidth, titleBkgHeight, -1, imageBoxHeight +1, 0x589199);
this.addChild(titleBkg);

但它没有出现。我提到这个了吗。错了?

我想您在构造函数中声明了宽度、高度、图形等。在我的类代码中,我从未使用过“this”。如果变量声明为类private/public,编译器将不允许您使用相同的名称声明其他变量。因此,您不必使用“this”,但使用“this”时可读性更强。您将知道它是类变量。
你们有并没有把你们的图形添加到舞台上,不是标题KG,而是你们在标题KG对象中创建的对象

您没有使用addChild正确创建图形并将其设置为父图形

实际上,您的舞台如下所示:

Stage ¬
    0: MainTimeline:MovieClip ¬
        0: instance1:StageObjects
Stage ¬
    0: MainTimeline:MovieClip ¬
        0: instance1:StageObjects ¬
            0: instance1:Shape
它需要像这样:

Stage ¬
    0: MainTimeline:MovieClip ¬
        0: instance1:StageObjects
Stage ¬
    0: MainTimeline:MovieClip ¬
        0: instance1:StageObjects ¬
            0: instance1:Shape
图形调用应该在形状上调用,而不是在电影唇上调用。您也可以在第一次通话时使用一条线路而不是两条线路进行设置

package {
    import flash.display.MovieClip;

    public class StageObjects extends MovieClip {
        public function StageObjects(w:int, h:int, X:int, Y:int, color:uint) {
            // Constructor
            this.x = X;
            this.y = Y;

            var rect:Shape = new Shape();
            rect.graphics.beginFill(color,1);
            rect.graphics.drawRect(0,0,w,h);
            rect.graphics.endFill();
            addChild(rect);
            trace("parameters: " + w + " - " + h + " - " + X + " - " + Y + " - " + color);
        }


        public function adjustXY(ch:Object, par:Object):void {
            // adjust position and scale functions
            var w = par.width;
            var h = par.height;

            ch.x = par.x + (w - ch.width) / 2;
            ch.y = par.y + (h - ch.height) / 2;
        }

        public function adjustWH(ch:Object, par:Object):void {
            var w = par.width;
            var h = par.height;
        }
    }
}
创建对象将简化为:

var titleBkg:StageObjects = new StageObjects(imageBoxWidth, titleBkgHeight, -1, imageBoxHeight +1, 0x589199);
this.addChild(titleBkg);

设置空电影剪辑的宽度/高度无效。您可以删除此项。宽度=w;这个高度=h;如何提供剪辑内容?当然,如果您不需要movieclip的任何功能,请使用精灵。抱歉,编辑了上面的问题,是否将其更改为精灵?当你回答的时候。。我已经这样做了,但是它仍然没有宽度/高度,只是注释出宽度和高度声明实际上是有效的。谢谢我需要图形精灵(又名StageObject)可以根据stageWidth/stageHeight值进行缩放,因此无法将它们直接添加到stage。您应该始终使用this关键字。在查找对象的内存引用时,它对作用域施加了额外的约束。是的,您不必使用关键字,但它会使对象查找时间稍微加快。谢谢!我想我开始明白了。。。提示不祥的musicokay,如果我想创建另一个扩展StageObject的类SwapableObject呢。我可以这样做:'var newswap:SwapableObject=newstageobjectswidthamount,heightamount,xlocation,ylocation,color;'你应该,尽管你可能需要在扩展类上调用super,我不记得了。试试看