首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将大小不同的电影剪辑放在一起?AS3

如何将大小不同的电影剪辑放在一起?AS3
EN

Stack Overflow用户
提问于 2018-03-21 23:59:23
回答 1查看 126关注 0票数 3

大家好,所以我有一些麻烦,这一点,我有平台,我增加到舞台上,是不同大小的宽度。我试图在我的for循环中添加更多的平台在当前平台的右侧,x位置在舞台上。我有麻烦,因为他们是不同的大小,所以他们结束了在这方面的轮滑游戏对方。我将平台MC与注册的右边对齐如下:

下面是较小尺寸的电影剪辑:

我这样做是因为我想要添加不同的障碍,每个框架内的平台电影剪辑。

添加初始平台:

代码语言:javascript
复制
private function addInitPlatform():void 
    {
        platforms = new mcPlatforms();
        platforms.x = (stage.stageWidth / 2) - 380;
        platforms.y = (stage.stageHeight / 2) + 175;
        addChildAt(platforms, 1);
        aPlatformArray.push(platforms);
    }

然后添加新平台:

代码语言:javascript
复制
private function addPlatForms():void
    {
        //Loop trhough Platform Array
        for (var i:int = 0; i < aPlatformArray.length; i++) 
        {
            var currentPlat:mcPlatforms = aPlatformArray[i];

            nOffSetX += currentPlat.width + 50;

            //Add platforms
            platforms = new mcPlatforms();
            platforms.x = nOffSetX;
            platforms.y = (stage.stageHeight / 2) + 175;
            addChildAt(platforms, 1);
            aPlatformArray.push(platforms);
            break;
        }
        trace(aPlatformArray.length + " NPLATFORMS");
    }

我试图得到现在的平台,这是我在舞台上添加的最后一个平台,并得到它的宽度,这样我可以在最后添加它,但随着时间的推移,它仍然在做一些奇怪和重叠的事情,

所以我想知道是否有人知道我该如何解决这个问题,所以每当我把一个新的平台电影剪辑添加到舞台上时,它就会在最后一个平台电影剪辑的右边对齐,并在舞台中间留出一些空间:

提前谢谢你!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-03-24 06:43:41

我猜您的库中有许多不同的平台,它们都设置了链接名。不确定是否希望它们按随机顺序排列,但无论如何,您可能希望从数组中提取它们,因此:

代码语言:javascript
复制
var aPlatformsArray:Array = [p1,p2,p3]; //Platform Mc's from library
var addedPlatforms:Array = new Array(); //Array where we store added platforms

第一种方法是在添加每个平台后简单地提高偏移量:

代码语言:javascript
复制
var offsetX:Number = 0; //Starting x for the first platform

for(var i:int=0; i<10; i++){
    //Just picking random ones from the Linkage array:
    var platform:MovieClip = new aPlatformsArray[Math.floor(Math.random() * aPlatformsArray.length)]();
    platform.y = 200;
    platform.x = offsetX;
    offsetX = platform.x + platform.width + 50;
    addChild(platform);
    addedPlatforms.push(platform);
}

实际上,您不需要担心第二种方法,因为它在技术上比较慢。

但主要的区别是,现在我们有一个数组,我们选择平台到舞台,和另一个数组,我们推动添加的平台。此时不需要第二个数组,但稍后可能需要它。

对于偏移计算,我们使用xwidth的“先前”元素+固定间隙。

如果您只需要平台的固定订单,那么您应该对循环使用类似的条件,并按照正确的顺序选择平台:

代码语言:javascript
复制
for(var i:int=0; i<aPlatformsArray.length; i++){
    var platform:MovieClip = aPlatformsArray[i];

如果这样做了,或者我做错了什么,请告诉我。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49418430

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档