如何在按下按钮时删除子/精灵?

莱克西

我正在做一个项目,如果用户点击“种植花园”,它将生成随机数量的花和随机数量的杂草。一旦他们完成了他们的“种植”序列,用户就会看到一个“种植新花园”,其中的花/杂草将从舞台上删除并重新开始。

我绞尽脑汁,这是我离“带走孩子”最近的一次——一个我从来没有理解过的概念哈哈。非常感谢任何帮助/指导。

** 在我复制旧文件时编辑代码**

import flash.events.MouseEvent;
import flash.display.DisplayObject;

// stops the playhead on frame 1
stop();

// random amount of flowers generated
var flowerAmount:int = (Math.ceil((Math.random() * 20)) + 9);
var weedAmount = Math.ceil((Math.random() * 10));


// garden display container
var newGarden:DisplayObjectContainer;

// setting new flower variable equal to the function that creates an instance of the flower
var newFlower_mc:DisplayObject = newFlower();

// flowers currently in the garden
var flowersInGarden:int = 0;
var weedsInGarden:int = 0;


// event listener for the grow button to start the garden
grow_btn.addEventListener(MouseEvent.MOUSE_UP, frameTwo);

// when grow button is clicked go to frame two
function frameTwo(event:MouseEvent) {
    gotoAndPlay(2);
}

// changes the size and position of the flower
function configureFlower(myFlower_mc:DisplayObject) {
    myFlower_mc.x = Math.random() * 400;
    myFlower_mc.y = Math.random() * 200;
    var flowerSize:Number = Math.random() + .5;
    myFlower_mc.height = myFlower_mc.height * flowerSize;
    myFlower_mc.width = myFlower_mc.width * flowerSize;
}
import flash.display.DisplayObject;

// function to create new instance of a flower
function newFlower():DisplayObject {
    var newFlower_mc:DisplayObject = new flower();
    return newFlower_mc;
}

// function to call the create flower function and add flower to sprite 
function createFlower() {
    var myFlower_mc = newFlower();
        configureFlower(myFlower_mc);
        newGarden.addChild(myFlower_mc);
    trace(flowerAmount);
    }

newGarden = new Sprite();

// adds the flower to the stage/sprite and adds to the flower counter
    function showFlowers() {
    createFlower();
    addChild(newGarden);
    flowersInGarden++;
    trace("Flowers:" + flowersInGarden + " " + weedAmount + " weedsingarden" + weedsInGarden);


}
// calls the above function
showFlowers();


// function to create a weed, configure weed and add to the garden sprite
function createWeed(){ 
    var newWeed:DisplayObject; 
    trace("creating weed"); 
    newWeed = new weed(); 
    newGarden.addChild(newWeed); 
    configureFlower(newWeed);
    weedsInGarden++;
}// if all the flowers haven't grown yet, go back to frame 2 until they have

if (flowersInGarden < flowerAmount) {
    gotoAndPlay(2);
}

// if the amount of weeds decided haven't grown yet, create another weed

if (weedsInGarden < weedAmount){ createWeed(); };
stop();

// event listener to grow a new garden
new_btn.addEventListener(MouseEvent.MOUSE_UP, growNewGarden);


// function to create a new garden if there are more than 1 instance in the container
function growNewGarden(event:MouseEvent) {
    while (newGarden.numChildren > 0) {
    stage.removeChild(newFlower_mc); 
        stage.removeChild(newGarden);
        // add a new, fresh sprite
        stage.addChild(newGarden);
        // randomly chooses a number of flowers
        flowerAmount = (Math.ceil((Math.random() * 21)) + 10);
        // resets flower counter to zero
        flowersInGarden = 0;
    gotoAndPlay(2);

}}
尼尔·戴维斯

如果您打算使用该numChildren属性作为您的属性进行循环,您应该使用子索引作为循环中的变量来选择子项。您所做的是循环遍历子项并尝试删除被调用的内容newFlower_mc或类似的内容,并且该变量在该函数的范围内没有任何意义。它可能看起来像这样

for (var i:int = newGarden.numChildren - 1; i >= 0; i--){
    var f:DisplayObject = newGarden.getChildAt(i);
    f.parent.removeChild(f);
}

所以这是一种方式。

不过,我认为移除花园会简单得多,而且由于所有的杂草和花朵都是花园的孩子,它们也会被移除。简单地:

newGarden.parent.removeChild(newGarden);

瞧!

另外,只是关于您的var newFlower_mc = newFlower();. 我不确定你明白那是做什么的。它不是将变量设置为等于函数。它将该变量设置为等于该函数被调用一次的输出或结果。这行代码是这样做的:

  1. 声明一个名为 的具有唯一名称的变量newFlower_mc
  2. 调用构造函数newFlower(),它返回一个DisplayObject
  3. 将返回的 DisplayObject 实例设置为变量 newFlower_mc

这一切都很好,但你有一个问题。后来,在你的构造函数,如果newFlower,你声明另一个变量......与已在使用的名称... newFlower_mc这不好。我不知道结果是什么。如果 flash 以某种方式允许它编译和运行而没有错误,我很惊讶,但无论如何这是不好的做法。我认为这是因为您不了解将变量设置=为函数时会发生什么我希望我的解释有帮助。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Swift 3:如何在按下 UI 按钮时删除 Core Data 中的单个记录

来自分类Dev

如何在按下按钮时更改Tkinter标签文本

来自分类Dev

如何在按下按钮时停止toggleClass()?

来自分类Dev

如何在按下按钮时绑定命令(wpf / mvvm)?

来自分类Dev

如何在按下按钮时发布Alamofire JSON请求?

来自分类Dev

如何在按下按钮时使用其他列表?

来自分类Dev

如何在按下按钮时停止toggleClass()?

来自分类Dev

如何在按下按钮时阻止JPanel内容移动?

来自分类Dev

如何在按下时获取按钮的变量名?

来自分类Dev

如何在按钮按下时更改/替换片段?

来自分类Dev

如何在按下按钮时更改Tkinter标签文本

来自分类Dev

如何在按下按钮时重置用户控制?

来自分类Dev

如何在按钮点击时添加和删除类

来自分类Dev

如何在按下按钮时更改按钮的颜色,并在按下其他按钮时重置为原始颜色?

来自分类Dev

如何在按下之前激活按钮?

来自分类Dev

SAPUI5-如何在按下按钮时隐藏按钮/区域/区域?

来自分类Dev

欧芹:如何在按下提交按钮以外的按钮时阻止验证?

来自分类Dev

如何在按下时更改按钮背景并在停止按下后继续更改?

来自分类Dev

如何在按键时删除div?

来自分类Dev

Django:如何在按下按钮后使按钮消失/禁用?

来自分类Dev

如何在按下Enter键时阻止按钮触发?(重点)

来自分类Dev

如何在按下按钮时检测鼠标在节点上的移动?

来自分类Dev

如何在按下按钮时切换标签的隐藏状态?

来自分类Dev

如何在Android中旋转图像并在按下按钮时随机停止图像

来自分类Dev

如何在按下按钮时画一个圆

来自分类Dev

android如何在按下按钮时停止音频线程?

来自分类Dev

如何在按下按钮时打开的容器中查找元素

来自分类Dev

(龙卷风)如何在按下按钮时将参数传递给服务器?

来自分类Dev

如何在按下按钮时播放循环播放的音频片段?

Related 相关文章

  1. 1

    Swift 3:如何在按下 UI 按钮时删除 Core Data 中的单个记录

  2. 2

    如何在按下按钮时更改Tkinter标签文本

  3. 3

    如何在按下按钮时停止toggleClass()?

  4. 4

    如何在按下按钮时绑定命令(wpf / mvvm)?

  5. 5

    如何在按下按钮时发布Alamofire JSON请求?

  6. 6

    如何在按下按钮时使用其他列表?

  7. 7

    如何在按下按钮时停止toggleClass()?

  8. 8

    如何在按下按钮时阻止JPanel内容移动?

  9. 9

    如何在按下时获取按钮的变量名?

  10. 10

    如何在按钮按下时更改/替换片段?

  11. 11

    如何在按下按钮时更改Tkinter标签文本

  12. 12

    如何在按下按钮时重置用户控制?

  13. 13

    如何在按钮点击时添加和删除类

  14. 14

    如何在按下按钮时更改按钮的颜色,并在按下其他按钮时重置为原始颜色?

  15. 15

    如何在按下之前激活按钮?

  16. 16

    SAPUI5-如何在按下按钮时隐藏按钮/区域/区域?

  17. 17

    欧芹:如何在按下提交按钮以外的按钮时阻止验证?

  18. 18

    如何在按下时更改按钮背景并在停止按下后继续更改?

  19. 19

    如何在按键时删除div?

  20. 20

    Django:如何在按下按钮后使按钮消失/禁用?

  21. 21

    如何在按下Enter键时阻止按钮触发?(重点)

  22. 22

    如何在按下按钮时检测鼠标在节点上的移动?

  23. 23

    如何在按下按钮时切换标签的隐藏状态?

  24. 24

    如何在Android中旋转图像并在按下按钮时随机停止图像

  25. 25

    如何在按下按钮时画一个圆

  26. 26

    android如何在按下按钮时停止音频线程?

  27. 27

    如何在按下按钮时打开的容器中查找元素

  28. 28

    (龙卷风)如何在按下按钮时将参数传递给服务器?

  29. 29

    如何在按下按钮时播放循环播放的音频片段?

热门标签

归档