Actionscript从库中的数组中添加对象到舞台

时间:2014-01-03 20:40:25

标签: arrays actionscript-3 actionscript

我尝试从库导入数组,然后将对象从数组放到舞台上。 我是闪光灯的新人,我会为我的女朋友做一个装扮游戏。

import flash.utils.getDefinitionByName;
import flash.display.Bitmap;
import flash.display.MovieClip;

var polc1Ar:Array = new Array();
inditasFu();

function inditasFu(){
    behivas();
    rakdkiFu();
}

function behivas(){
    for (var i=1; i!=3; i++) {
        classRef:getDefinitionByName("Symbol" + i.toString()) = new getDefinitionByName("Symbol" + i.toString() as MovieClip)();
        var classRef:Symbol1 = new Symbol1();
        polc1Ar.push(classRef)
        addChild(polc1Ar[0]);
        }
}

function rakdkiFu (){
    for (var i=0; i!=polc1Ar.length; i++) {
        var celTargy:Bitmap = polc1Ar[i] as Bitmap ;
        this.addChild(celTargy);
        celTargy.x = 25*i;
        celTargy.y = 45*i;
    }
}

1 个答案:

答案 0 :(得分:0)

您的代码中存在大量语法错误。将所有代码更改为:

import flash.utils.getDefinitionByName;
import flash.display.Bitmap;
import flash.display.MovieClip;
import flash.display.BitmapData;

var polc1Ar:Array = new Array();
inditasFu();

function inditasFu(){
    behivas();
    rakdkiFu();
}

function behivas(){
    for (var i=1; i!=3; i++) {
        var ClassRef:Class = getDefinitionByName("Symbol" + i.toString()) as Class;
        var classRef = new ClassRef();
        polc1Ar.push(classRef)
        addChild(polc1Ar[0]);
        }
}

function rakdkiFu (){
    for (var i=0; i!=polc1Ar.length; i++) {
        var bmpData = new BitmapData(polc1Ar[i].width, polc1Ar[i].height);
        bmpData.draw(polc1Ar[i]);
        var celTargy:Bitmap = new Bitmap(bmpData);
        this.addChild(celTargy);
        celTargy.x = 25*i;
        celTargy.y = 45*i;
    }
}

[1] 您无法将“MovieClip作为位图”执行,因此我使用了Bitmap.draw(),因为MovieClip IBitmapDrawable

[2] 您必须使用getDefinitionByName创建一个类,您不能直接创建MovieClip,除非您创建非常混乱的代码。基本上,语法错误。

[3] 请注意,只有当您有三个图书馆剪辑导出的班级名称名为 Symbol1,Symbol2时,此功能才有效和Symbol3。