你怎么把这个AS2代码转换为AS3

时间:2013-08-19 10:31:00

标签: actionscript-3 actionscript-2

我正在研究我的AS3而且我被卡住了。这段代码在我的AS2文件中。你如何将此代码转换为AS3?当我设置为AS3并发布时,会显示以下错误消息:

  

场景1,图层'第1层',第1帧,第6行   1046:未找到类型或不是编译时常量:颜色。

请帮助...... :(

i=0;
function cogalt() {
i++;
mc.duplicateMovieClip("mc"+i, i);
//
var my_color:Color = new Color(_root["mc"+i]);
_root["mc"+i].renk1=random(255);
_root["mc"+i].renk2=random(255);
_root["mc"+i].renk3=random(255);
my_color.setRGB(_root["mc"+i].renk1<<16 | _root["mc"+i].renk2<<8 | _root["mc"+i].renk3 );
//
_root["mc"+i]._x = tiklax;
_root["mc"+i]._y = tiklay;
//
_root["mc"+i].deger2 = random(2);
//
_root["mc"+i].ziplama = 1+random(10);
_root["mc"+i]._width = _root["mc"+i]._height = 1+random(10);
//
if (_root["mc"+i].deger2 == 0) {
    _root["mc"+i].degerx = -(1+random(4));
} else {
    _root["mc"+i].degerx = +(1+random(4));
}
_root["mc"+i].onEnterFrame = function() {
    this.ziplama -=1;
    this._y-= this.ziplama;
    this._x += this.degerx;
    this._alpha -= 4;
    if (this._alpha<0) {
        delete this.onEnterFrame;
        removeMovieClip(this);
    }
};
      }
      mc.startDrag(true);

1 个答案:

答案 0 :(得分:0)

1。 这是一个关于动态设置MovieClip颜色的链接,AS2到AS3: http://evolve.reintroducing.com/2008/02/26/as2-to-as3/as2-%E2%86%92-as3-setting-a-movieclips-color/

2。 你还将遇到另一个问题。 as3中没有duplicateMovieClip()。

您必须创建MovieClip的子类并将其链接到要复制的图形。创建该子类时,不要忘记选择“Export for Actionscript”。

然后你会有

var mc:MovieClip = new SubclassOfMovieClip()
addChild(mc)

然后你可能需要将每个实例保存到一个数组/向量中,这样你就可以保留对象的引用。

3。 在as3中添加侦听器来自此

mc.onEnterFrame=function(){}

到这个

mc.addEventListener(Event.ENTER_FRAME,onEnterFrame)

function onEnterFrame(evt:Event){}