Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.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
Flash can';t引用嵌套数组 var orb_strip:Array=new Array(); var orb_strip_矩阵:数组=新数组(orb_strip); 公共函数OrbArray()//构造函数。 { 对于(变量a:uint=0;a_Flash - Fatal编程技术网

Flash can';t引用嵌套数组 var orb_strip:Array=new Array(); var orb_strip_矩阵:数组=新数组(orb_strip); 公共函数OrbArray()//构造函数。 { 对于(变量a:uint=0;a

Flash can';t引用嵌套数组 var orb_strip:Array=new Array(); var orb_strip_矩阵:数组=新数组(orb_strip); 公共函数OrbArray()//构造函数。 { 对于(变量a:uint=0;a,flash,Flash,问题在于,它只引用数组顶部或0行中的球体 这嵌套在另一个for循环中,该循环创建一个movieClip行数组。问题:我看到它们在舞台上正确地绘制和定位,但我不能引用除最上面一行以外的任何内容来更改alpha。我已经寻找了一个解决方案,但找不到任何这样做的例子,所以得出结论,嵌套for循环是错误的方法吗?任何想法都很受欢迎 我没有运行你的代码,所以我不明白为什么数组访问不起作用,老实说,看起来应该这样 但是,我有几个问题,为什么需要将球体放在两个数组中,为什么需要它们放在一个数组中,您可以作为它们

问题在于,它只引用数组顶部或0行中的球体


这嵌套在另一个for循环中,该循环创建一个movieClip行数组。问题:我看到它们在舞台上正确地绘制和定位,但我不能引用除最上面一行以外的任何内容来更改alpha。我已经寻找了一个解决方案,但找不到任何这样做的例子,所以得出结论,嵌套for循环是错误的方法吗?任何想法都很受欢迎

我没有运行你的代码,所以我不明白为什么
数组
访问不起作用,老实说,看起来应该这样

但是,我有几个问题,为什么需要将球体放在两个数组中,为什么需要它们放在一个数组中,您可以作为它们所在的
DisplayObjectContainer
的子对象访问它们

关于两个
for
循环,不要嵌套它们,而是执行一个循环,并使用
模运算来构建球体的网格(模运算将包裹一系列数字,例如,就像时钟包裹24小时一样)

例如:

var orb_strip:Array = new Array();
var orb_strip_matrix:Array = new Array(orb_strip);

public function OrbArray() //constructor.
{      
   for (var a:uint = 0; a < orb_strip_row_size; a++) 
   {

   //one for loop create an array of movieClips and draws them on the stage in a row. 

      for (var i:uint = 0; i < orb_strip_size; i ++) 
      {
         var orb:Orb = new Orb();

         // all the properties of each orb are created.

         orb.x = (i*50);
         orb.y = (a*100);
         orb.alpha = 0.3;
         orb.orbText.text = ("orb" + i);
         orb.label = "blank";
         orb.type = "speak";
         orb.mouseChildren = false; //?
         // more event listners but this time for each orb.
         orb.addEventListener(MouseEvent.MOUSE_OVER, orbMouseOver);
         orb.addEventListener(MouseEvent.CLICK, orbClick);
         orb.addEventListener(MouseEvent.MOUSE_OUT, orbMouseOut);

         orb_strip.push(orb); // an orb is born!
         addChild(orb);
      }

      orb_strip_matrix.push(orb_strip);

   }

orb_strip_matrix[1][3].alpha = 0.9;

}
var orb_strip=new Array();
公共函数数组(){
变量或水平间距:int=50;
变量或垂直间距:int=100;
变量orbRowSize:int=10;
var-columnsize:int=10;
var totalNumberOfOrbs:int=orbRowSize*orbColumnSize;
对于(变量i:uint=0;i
如果您觉得确实需要它,它仍然包括阵列

更新: 我建议您使用模来确定Orb是在行的开头还是结尾,而不是2D数组


但是关于为什么数组访问不起作用,好吧,这将教会我没有仔细查看您的原始代码。你只需要在类级别创建一个代码> ORB*Bux请修复你的示例代码格式,谢谢。@约翰在CasCalMon中,谢谢,中间的注释应该被拔出代码。问题文本:一个for循环创建一个MOVIVIPS数组,并将它们画在一行的舞台上。这嵌套在另一个for循环中,该循环创建一个movieClip行数组。问题:例如,我看到它们在舞台上正确地绘制和定位,但我不能引用除顶行以外的任何其他行来更改alpha。我已经寻找了一个解决方案,但找不到任何这样做的例子,所以得出结论,嵌套for循环是错误的方法吗?任何想法都收到了。我已经为您更新了我的答案。我想使用数组,因为我想能够使用数组类型的函数操纵球体,而且我认为数组访问方法将是直接的(引用您的话)“我没有运行你的代码,所以我不明白为什么数组访问不起作用,老实说,看起来应该如此!”)这对我来说是一个鼓励,因为我不明白为什么不能。谢谢你给了我模的概念。使用嵌套数组的另一个原因是,我想知道哪一个球体位于行的末尾或行的开头,或者操纵特定行上的球体。在我的脑海中,我认为嵌套数组对我来说很容易可视化。仍然不理解为什么orb_strip_matrix[1][3].alpha=0.9;不起作用?
var orb_strip = new Array();

public function OrbArray() {
    var orbHorizontalSpacing:int = 50;
    var orbVerticalSpacing:int = 100;
    var orbRowSize:int = 10;
    var orbColumnSize:int = 10;
    var totalNumberOfOrbs:int = orbRowSize * orbColumnSize;

    for (var i:uint = 0; i < totalNumberOfOrbs; i ++) 
    {
        var orb:Orb = new Orb();
        // derive x from modulo totalNumberOfOrbs index (i) by orbRowSize.
        orb.x = (i%orbRowSize * orbHorizontalSpacing); 
        // derive y from totalNumberOfOrbs index (i) by orbColumnSize
        orb.y = (Math.floor(i / orbColumnSize) * orbVerticalSpacing);

        orb.alpha = 0.3;
        orb.orbText.text = ("orb" + i ); // i is now 0 to totalNumberOfOrbs
        orb.label = "blank";
        orb.type = "speak";
        orb.mouseChildren = false;

        orb.addEventListener(MouseEvent.MOUSE_OVER, orbMouseOver);
        orb.addEventListener(MouseEvent.CLICK, orbClick);
        orb.addEventListener(MouseEvent.MOUSE_OUT, orbMouseOut);

        orb_strip.push(orb); // an orb is born!
        addChild(orb);
    }
}