【问题标题】:addChild() method doesn't work properlyaddChild() 方法不能正常工作
【发布时间】:2014-01-11 22:59:57
【问题描述】:

我正在尝试在舞台上打印一些图像,但在共谋期间出现问题,并非所有图像都打印出来,我追踪它们以验证它们是否存在,它们确实存在,我验证它们也有正确的坐标,并且他们确实……你只是看不到他们……为什么? validFaces 是一个包含一些位图的数组,OXA 是一个包含一些点的数组,它们的坐标应该是平行的,就像我所做的那样……为什么有时它们中的一些是不可见的?

function printOpponents():void{
    for (var k:int = 0; k<numOpp; k++){
        addChild(validFaces[k]);
        validFaces[k].x = OXA[k].x;
        validFaces[k].y = OXA[k].y;

    }
}

【问题讨论】:

  • addChild 是一个函数
  • numOpp这个数字有多大
  • 对应validFaces.length
  • 我可以看到您的所有代码吗?
  • 可以私信给你吗?

标签: actionscript-3 invisible addchild


【解决方案1】:

尝试使它们高于最高索引:

function printOpponents():void{
    for (var k:int = 0; k<numOpp; k++){
        addChild(validFaces[k]);
        validFaces[k].x = OXA[k].x;
        validFaces[k].y = OXA[k].y;
        validFaces[k].parent.setChildIndex(validFaces[k], validFaces[k].parent.numChildren - 1);
    }
}

validFaces[k].parent 获取validFaces[k] 的父级,setChildIndex 设置它应该是的级别(例如:一个对象显示在另一个对象之上)validFaces[k].parent.numChildren - 1 获取位于最高索引的对象,因此使validFaces[k]位于所有其他对象之上的对象(validFaces[numOpp - 1] 在技术上位于所有其他对象之上)。

【讨论】:

  • 是的,它的值相同...可能是什么问题?
  • 一个问题可能是 numOpps 设置在其他地方,但它可能是数组的长度在其他地方改变了,所以 numOpps 不是最新的,并且您丢失/试图访问循环中不存在的面孔?这就是我们需要更多代码的原因。
  • 我在想它的加载问题,也许程序无法足够快地加载图像,事实上当 numOpp 是一个小的 int 时,比如 1,2 或 3 没有问题,但是我在关键帧 1 处实现了预加载器,但这并没有解决问题。
  • @user3161756 查看编辑,尝试新代码。我的代码有错误:P
  • ArgumentError: 错误 #2025: Il valore fornito per DisplayObject deve essere un elemento secondario del chiamante。在 flash.display::DisplayObjectContainer/setChildIndex() 在 flash.display::Stage/setChildIndex() 在 Piatto_Scena1_fla::MainTimeline/printOpponents() 在 Piatto_Scena1_fla::MainTimeline/frame46()
【解决方案2】:

我成功地解决了这个问题,在另一个帧中有一个语义错误的函数,所以数组 validFaces 曾经包含图像和数字,我修复了它,声明了一个包含所有图像的新数组 validFacesImages,现在它可以工作了;)谢谢你。

【讨论】:

    猜你喜欢
    • 2016-08-01
    • 2012-11-08
    • 1970-01-01
    • 2015-06-29
    • 2021-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多