AS3 显示列表和box2d

Posted

技术标签:

【中文标题】AS3 显示列表和box2d【英文标题】:AS3 Display list and box2d 【发布时间】:2015-08-03 12:48:15 【问题描述】:

我在从 sprite 类扩展的名为 createBrick 的子类中有一个名为“brick”的函数,我还在导出的库中创建了一个名为“Brick”的影片剪辑,用于运行时共享。由于某些奇怪的原因,当我运行代码时,即使在我调试代码时确实创建了砖块,但它并没有出现在舞台上。

这里是函数

     public  class createBrick extends Sprite 

        public function createBrick(_main:Main) 
                    main = _main; 
                    var go:Brick = new Brick();
                    addChild(go);
                    trace(go.x);
                    brick(475, 235, 30, 30);
        

    private function brick(pX: int, pY: int, w: Number, h: Number): void 

                var bric:Brick = new Brick();
                addChild(bric);
                bric.x = pX;
                bric.y = pY;
                bric.width = w;
                bric.height = h;

                var polygonShape: b2PolygonShape = new b2PolygonShape();
                var polygonFixture: b2FixtureDef = new b2FixtureDef();
                polygonShape.SetAsBox(w / 2 / worldScale, h / 2 / worldScale);
                polygonFixture.shape = polygonShape;
                polygonFixture.density = .2;
                polygonFixture.restitution = 0.9;
                polygonFixture.friction = 0.9;
                var brickbodyDef: b2BodyDef = new b2BodyDef();
                brickbodyDef.type=b2Body.b2_dynamicBody;
                brickbodyDef.userData = bric;
                brickbodyDef.position.Set(bric.x / worldScale, bric.y / worldScale);
                var theBrick: b2Body = world.CreateBody(brickbodyDef);
                theBrick.CreateFixture(polygonFixture);
                
        

如果我将所有代码都包含在主文档类中,并且我确实在舞台上看到了一块砖,那么同样的功能可以完美运行。任何线索我没有正确引用它吗?

【问题讨论】:

I have a brick class that extends from the Main document class 你为什么要扩展你的文档类? 抱歉打错了它是 Sprite 类的扩展 没有提供足够的信息。 我刚刚添加了更多信息,这有意义吗? 按照使用的名称,我猜您正在使用“createBrick”类作为某种类型的工厂,所以我再次猜测您实际上从未在任何地方添加 createBrick 的实例。 【参考方案1】:

我想通了,只需要从主文档类传递舞台引用,精灵就会出现。

【讨论】:

简单地添加您实例化它的 Brick 类的实例而不是让对象将自身添加到某个容器中会更容易。

以上是关于AS3 显示列表和box2d的主要内容,如果未能解决你的问题,请参考以下文章

来人啊。。。。flash as3.0 box2d停止刚体移动问题。

AS3 如何成为矢量列表的头部?

Flash AS3 - AddChild 超出精灵范围

AS3 使用列表组件和 MouseEvent 监听器

删除所选项目列表框AS3

ActionScript 3 AS3修剪逗号分隔字符串(例如,用户输入的逗号分隔关键字列表)