【问题标题】:Flash push item inside of an array数组内的 Flash 推送项目
【发布时间】:2013-05-05 09:39:57
【问题描述】:

我在 AS#3 和数组方面需要一些帮助 基本上我在将项目推入有错误的二维数组时遇到了麻烦。 以下是我拥有并尝试使用的内容:

    var j = 0
    var i = 0
    var mixerArray:Array = new array();
    function Mixer()
    {
    optionLenght = gridOption.sequence_txt.text;// == 8
    track_list = gridOption.track_text.text;// == 4


    for (j = 0; j <track_list; j++)
    {
    make_tracks();
     for (i = 0; i <optionLenght; i++)
    {
       item_inside_track();
    }
    }

   function make_tracks(){
   tracks = new Tracks();//a large box
   MixerArray[j].push(tracks);
   }
   /* Make little boxes inside big box
   ..................................................
   */
   function item_inside_track(){
   box= new Box();//littlebox
   MixerArray[j][i].push(box); // iwant to push this box into track[j]
    }

基本上我试图创建一个将值存储在值中的数组,例如

   MixerArray()
   [0]TRACK1  =  [0]//littlebox ,[1]//littlebox, [2]//littlebox [3]//littlebox etc to 8
   [1]TRACK2  =  [0]//littlebox ,[1]//littlebox, [2]//littlebox [3]//littlebox etc to 8
   [2]TRACK3  = [0]//littlebox ,[1]//littlebox, [2]//littlebox [3]//littlebox etc to 8
   [3]TRACK4  = [0]//littlebox ,[1]//littlebox, [2]//littlebox [3]//littlebox etc to 8

这必须是动态的,因为它会不断变化。我已经削减了 addchilds 和其他代码,以将其最小化到源区域。

【问题讨论】:

  • 我可以在这段代码中看到很多错误,你在控制台中得到了什么?
  • MixerArray[j][i].push(box);这行错误,说这不是函数
  • 您的 Tracks 类实际上是否有一个名为 push() 的函数?如果没有,那就是那里的问题。 MixerArray[j][i](用户小写,驼峰式顺便说一句)是Tracks 类型,而不是Array。因此,除非 Tracks 扩展了数组或者您添加了一个名为 push 的自定义函数,否则没有 push 函数。
  • 不,它没有 push();我明白这一点,但我不知道如何在数组中添加框: myarray.push.muMC;//works but myarray[0][1].push(box);;抛出错误
  • 想象一下:myarray.push(tracks);myarray[tracks1].push(mymovieclip);跟踪(myarray[0][0]); // 轨道,电影剪辑。

标签: actionscript-3 flash actionscript flash-cs5


【解决方案1】:

所以你基本上是在创建一个数组数组。 这里的问题是您试图将项目推送到第二个数组的元素中。

MixerArray[j][i].push(box); // iwant to push this box into track[j]

如果你想推入 J 数组,你只需要这样做:

MixerArray[j].push(box);

但是,您需要先创建 MixerArray 中包含的不同数组。只需在初始化函数中或在第一个函数开始时将新数组推入 MixerArray。您的代码的另一个问题是您使用了:

var mixerArray:Array = new array();
在您使用的其余代码中:
MixerArray

进行更改并告诉我它是否有效!

【讨论】:

  • MixerArray[j] = 新数组 ();我需要先添加一个新数组,然后再添加其中的项目
猜你喜欢
  • 2019-07-20
  • 1970-01-01
  • 2015-11-15
  • 1970-01-01
  • 1970-01-01
  • 2021-10-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多