Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.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
Arrays 动作脚本3,Flash CC:将对象从库中放置到舞台上_Arrays_Actionscript 3_Flash_Movieclip - Fatal编程技术网

Arrays 动作脚本3,Flash CC:将对象从库中放置到舞台上

Arrays 动作脚本3,Flash CC:将对象从库中放置到舞台上,arrays,actionscript-3,flash,movieclip,Arrays,Actionscript 3,Flash,Movieclip,你好,stackoverflow的编程大师,我希望你们中至少有一位能够帮助我解决编码问题。这是我第一次在这个网站上发帖,所以如果我错过了一些关于我的帖子结构的东西,或者任何东西,请让我知道,最好不要屈尊俯就,我会很高兴地改变它 实际上,我有一个不同的问题要问,但我最近意识到我的图书馆里的一些东西没有出现在我的舞台上。希望,如果这个问题得到解决,我就不会有其他问题了 我正在使用Flash CC和Actionscript 3创建一个学习模块应用程序,我想我对Flash相当精通,但现在我所有的代码都在

你好,stackoverflow的编程大师,我希望你们中至少有一位能够帮助我解决编码问题。这是我第一次在这个网站上发帖,所以如果我错过了一些关于我的帖子结构的东西,或者任何东西,请让我知道,最好不要屈尊俯就,我会很高兴地改变它

实际上,我有一个不同的问题要问,但我最近意识到我的图书馆里的一些东西没有出现在我的舞台上。希望,如果这个问题得到解决,我就不会有其他问题了

我正在使用Flash CC和Actionscript 3创建一个学习模块应用程序,我想我对Flash相当精通,但现在我所有的代码都在时间线上,因为我开始时不知道软件包的设置。当我完成学习模块时,我将尝试将所有内容移动到AS软件包中,请耐心等待

这个模块的当前框架是一个拖拽游戏,用户拖曳正确的食物,为他们在前一帧中选择的动物,在中间的动物。这只动物被动态地放在舞台上,还有一系列六种可能的食物选择,所有的电影都是从图书馆里取来的。食物元素的排列实际上并不是我的问题,它们出现在我的舞台上一点问题都没有。我遇到的问题是,当用户将正确的食物拖到动物身上,并且满足获胜条件时,气球元素数组不会出现在舞台上。我觉得这很奇怪,因为我对食物和气球数组使用了几乎相同的代码

这是我的全部代码:

import flash.display.MovieClip;
import flash.events.MouseEvent;

foodPet();

function foodPet():void {
    //all of my pet, food, and balloon library objects have been exported for AS
    var theBird:pet_bird = new pet_bird;
    var theCat:pet_cat = new pet_cat;
    var theChicken:pet_chicken = new pet_chicken;
    var theDog:pet_dog = new pet_dog;
    var theDuck:pet_duck = new pet_duck;
    var theGuinea:pet_guinea = new pet_guinea;
    var theHamster:pet_hamster = new pet_hamster;

    var birdSeed:food_bird_seed = new food_bird_seed;
    var catFood:food_cat_food = new food_cat_food;
    var chickenFeed:food_chicken_feed = new food_chicken_feed;
    var chocolate:food_chocolate = new food_chocolate;
    var dogFood:food_dog_food = new food_dog_food;
    var duckFood:food_duck_food = new food_duck_food;

    var animalList:Array = [theBird, theCat, theChicken, theDog,
        theDuck, theGuinea, theHamster];
    var food1Array:Array = [birdSeed, catFood, chickenFeed,
        chocolate, dogFood, duckFood, 4];
    var xPosFood:Array = new Array();
    var yPosFood:Array = new Array();
    xPosFood = [32, 71, 146, 363, 431, 512];
    yPosFood = [304, 222, 123, 123, 222, 304];
    var animalClip:MovieClip;
    animalClip = animalList[chosenAnimal];
    addChild(animalClip);
    animalClip.x = 256;
    animalClip.y = 287;
    animalClip.name = "selectedAnimal";

    for (var i:uint = 0; i < food1Array.length - 1; i++){ //Where the food gets added
        var isItRight:Boolean = false;
        var foodName:String = ("food" + i);
        var foodClip:MovieClip;
        foodClip = food1Array[i];
        foodClip.x = xPosFood[i];
        foodClip.y = yPosFood[i];
        foodClip.name = foodName;
        addChild(foodClip);
        trace(foodClip.parent);
        foodDragSetup(foodClip, animalClip, food1Array[food1Array.length - 1], isItRight);
    }
}

function foodDragSetup(clip:MovieClip, targ:MovieClip, correctNum:uint, isItRight:Boolean) {
    var beingDragged:Boolean = false;
    var xPos:Number = clip.x;
    var yPos:Number = clip.y;
    clip.addEventListener(MouseEvent.MOUSE_DOWN, beginDrag);

    function beginDrag(event:MouseEvent):void
    {
        clip.startDrag();
        if (int(clip.name.substr(4)) == correctNum){
            isItRight = true;
        }
        this.beingDragged = true;
        setChildIndex(clip, numChildren - 1);
        clip.addEventListener(MouseEvent.MOUSE_UP, endDrag);
    }

    function endDrag(event:MouseEvent):void
    {
        if (this.beingDragged) {
            this.beingDragged = false;
            clip.stopDrag();
            if ((isItRight) && (clip.hitTestPoint(targ.x, targ.y, true))){
                trace(targ.name + " has been hit.");
                clip.x = targ.x;
                clip.y = targ.y;
                win_animal_food();
            } else {
                isItRight = false;
                clip.x = xPos;
                clip.y = yPos;
            }
        }
    }
}

function win_animal_food():void {
    const BALLOON_ROW:int = 4;
    var count:uint = 0;
    var altX:uint = 0;

    var bBalloon:blue_balloon = new blue_balloon;
    var gBalloon:green_balloon = new green_balloon;
    var oBalloon:orange_balloon = new orange_balloon;
    var pBalloon:purple_balloon = new purple_balloon;
    var rBalloon:red_balloon = new red_balloon;
    var yBalloon:yellow_balloon = new yellow_balloon;

    var balloonList:Array = [bBalloon, gBalloon, oBalloon,
        pBalloon, rBalloon, yBalloon, bBalloon, gBalloon,
        oBalloon, pBalloon, rBalloon, yBalloon, bBalloon,
        gBalloon, oBalloon, pBalloon];
    var balloonY:Array = [144, -205, -265, -325];
    var balloonX:Array = [0, 140, 284, 428, 68, 212, 356, 500];

    for (var ballY:uint = 0; ballY < balloonY.length; ballY++){ //Where balloons
        for (var ballX:uint = altX; ballX < altX + BALLOON_ROW; ballX++){ //get added
            var balloonName:String = ("balloon" + count);
            var balloonClip:MovieClip;
            balloonClip = balloonList[count];
            balloonClip.x = balloonX[ballX];
            balloonClip.y = balloonY[ballY];
            balloonClip.name = balloonName;
            addChild(balloonClip);
            trace(balloonClip.parent);
            trace(balloonClip + " has been added!");
            balloonClip.addEventListener(MouseEvent.CLICK, balloonPop); 
            count++;
        }

        if (altX == 0) {
            altX = BALLOON_ROW;
        } else {
            altX = 0;
        }
    }

    function balloonPop(event:MouseEvent):void {
        event.target.play();
        event.target.removeEventListener(MouseEvent.CLICK, balloonPop);
    }
}
他们都出现在舞台上,所以电影的口吻没有问题

添加:BallooXarray和BallooYarray的第一个值最初分别为-4和-145,但当我开始出现问题时,我想确保气球显示出来,因此我将第一个值设置为0和144气球高度和宽度都为144,其十字不确定其名称在左上角

添加:BalloodList中存在同一引出序号的多个实例的原因是我需要四行四个引出序号,但只有六个不同的引出序号

我知道气球在舞台上,因为调试显示在可视舞台上显示它们的x和y值。使用tracefoodClip.parent和traceballoonClip.parent可以显示气球和食物都具有相同的父级main timeline,因此我知道气球不会添加到不同的空间

我在网上搜索过,但没有遇到任何人有类似的问题。因此,我在这个论坛上问,是否有人能告诉我为什么我的气球不会出现在舞台上


请接受并感谢您。

我在baloonList中直接看到的一件事是,您多次列出了相同的对象实例。每个实例只能在舞台上存在一次。如果添加一个已在后台的实例,则该实例将首先被删除,然后重新添加到显示列表的顶部

您应该更改:

var bBalloon:blue_balloon = new blue_balloon;
var gBalloon:green_balloon = new green_balloon;
var oBalloon:orange_balloon = new orange_balloon;
var pBalloon:purple_balloon = new purple_balloon;
var rBalloon:red_balloon = new red_balloon;
var yBalloon:yellow_balloon = new yellow_balloon;

var balloonList:Array = [bBalloon, gBalloon, oBalloon,
    pBalloon, rBalloon, yBalloon, bBalloon, gBalloon,
    oBalloon, pBalloon, rBalloon, yBalloon, bBalloon,
    gBalloon, oBalloon, pBalloon];
致:


要立即检查的基本事项:您选择的坐标位置是否可见?追踪气球的宽度/高度,看看这是否是您所期望的。检查BalloodClip.stage是否不为null,它将一直检查显示列表。为什么气球阵列中多次出现同一气球实例?这就是你所认为的吗?@AndySavage感谢你对我的问题进行查看和评论!气球的高度和宽度分别为144px,在左上角有一个十字,我的原始气球阵列以-145开始,原始气球阵列以-4开始,但由于我开始遇到问题,我决定更改第一个x和y值,以便它显示在屏幕144,0上。跟踪BallodClip.stage将提供[object stage]。至于气球实例的倍数,我只有六个不同的气球,但我需要做四行四个气球。我希望这有助于澄清一些事情。我在baloonList中直接看到的一件事是,您多次列出了相同的对象实例。每个实例只能在舞台上存在一次。如果您添加了一个已经在后台的实例,该实例将首先被删除,然后重新添加到显示列表的顶部。这正是问题所在!我可能早该知道。非常感谢您@PatrickGunderson!
var bBalloon:blue_balloon = new blue_balloon;
var gBalloon:green_balloon = new green_balloon;
var oBalloon:orange_balloon = new orange_balloon;
var pBalloon:purple_balloon = new purple_balloon;
var rBalloon:red_balloon = new red_balloon;
var yBalloon:yellow_balloon = new yellow_balloon;

var balloonList:Array = [bBalloon, gBalloon, oBalloon,
    pBalloon, rBalloon, yBalloon, bBalloon, gBalloon,
    oBalloon, pBalloon, rBalloon, yBalloon, bBalloon,
    gBalloon, oBalloon, pBalloon];
var balloonList:Array = [
    new blue_balloon, 
    new green_balloon, 
    new orange_balloon,
    new purple_balloon,
    new red_balloon,
    new yellow_balloon, 
    new blue_balloon, 
    new green_balloon, 
    new orange_balloon,
    new purple_balloon,
    new red_balloon,
    new yellow_balloon, 
    new blue_balloon,
    new blue_balloon, 
    new green_balloon, 
    new orange_balloon,
    new purple_balloon
];