arrays - AS3 : AddChild based on Array Value

标签 arrays actionscript-3 addchild

假设我有一个数组,数组中的每个项目都有一个对应的库项目。

我想做这样的事情:

var rando = Math.round(Math.random()*3)
var myArray = new Array ["ball", "wall", "fall"]
var i:myArray[rando] = myArray[rando] new myArray[rando]()
addChild(i)

但是,这行不通。有什么 secret 吗?

谢谢,

维克多·雨果

最佳答案

很惊讶没有人提到getDefinitionByName()在这里。

这里有一些完整的代码,可以让您的示例正常工作:

var myArray = ["ball", "wall", "fall"];

/**
 * Creates a random instance based on an input array containing class names as Strings.
 * @param The input array containing aforementioned Strings.
 * @return The newly created instance.
 */
function createRandom(typeArray:Array):*
{
    // Select random String from typeArray.
    var selection:String = typeArray[ int(Math.random() * typeArray.length) ];

    // Create instance of relevant class.
    var Type:Class = getDefinitionByName(selection) as Class;

    // Return created instance.
    return new Type();
}


// Randomly create and add instance.
var instance:DisplayObject = createRandom(myArray);
addChild(instance);

关于arrays - AS3 : AddChild based on Array Value,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10405961/

相关文章:

arrays - C 指向数组的指针未赋值

flash - mouseChildren = false 对我来说效果不佳

javascript - 是否可以通过循环数组来填充对象实例?

javascript - 根据 attr 按类选择元素,然后添加或删除类

actionscript-3 - 如何打乱位图数据?

flash - ActionScript 3 墙壁碰撞检测

java - 生成唯一的随机数并检查重复项

ios - 如何让 'removeFromParent()'多次工作?

swift - 即使我在 swift 中使用 addChild,我的 SKSpriteNode 也不会显示

java - 从数组中读取并计算平均值