0

starfirld 効果用の素敵な AS2 スクリプトを AS3 に変換しようとしましたが、まだ奇妙なエラーが発生しています。元の AS2 コードは次のとおりです。

var stars = 100;
var maxSpeed = 16;
var minSpeed = 2;
var i = 0;
while (i < stars)
{
    var mc = this.attachMovie("star", "star" + i, i);
    mc._x = random(Stage.width);
    mc._y = random(Stage.height);
    mc.speed = random(maxSpeed - minSpeed) + minSpeed;
    var size = random(2) + 6.000000E-001 * random(4);
    mc._width = size;
    mc._height = size;
    ++i;
} // end while
this.onEnterFrame = function ()
{
    for (var _loc3 = 0; _loc3 < stars; ++_loc3)
    {
        var _loc2 = this["star" + _loc3];
        if (_loc2._y > 0)
        {
            _loc2._y = _loc2._y - _loc2.speed;
            continue;
        } // end if
        _loc2._y = Stage.height;
        _loc2.speed = random(maxSpeed - minSpeed) + minSpeed;
        _loc2._x = random(Stage.width);
    } // end of for
};

ここに私のAS3バージョンがあります:

import flash.events.Event;
import flash.events.MouseEvent;

function starField():void 
{
    var stars:int = 100;
    var maxSpeed:int = 16;
    var minSpeed:int = 2;
    var i:int = 0;
    while (i < stars)
    {
        var mc = new Star();
        addChild(mc)
        mc._x = Math.random()(stage.stageWidth);
        mc._y = Math.random()(stage.stageHeight);
        mc.speed = Math.random()(maxSpeed - minSpeed) + minSpeed;
        var size = Math.random()(2) + 6.000000E-001 * Math.random()(4);
        mc._width = size;
        mc._height = size;
        ++i;
    } // end while
}

addEventListener(Event.ENTER_FRAME, update);
function update(_e:Event):void
{
    for (var _loc3 = 0; _loc3 < 100; ++_loc3)
    {
        var _loc2 = this["star" + _loc3];
        if (_loc2._y > 0)
        {
            _loc2._y = _loc2._y - _loc2.speed;
            continue;
        } // end if
        _loc2._y = stage.stageHeight;
        _loc2.speed = Math.random()(maxSpeed - minSpeed) + minSpeed;
        _loc2._x = Math.random()(stage.stageWidth);
    } // end of for
};

「TypeError: エラー #1010: A term is undefined and has no properties. at _fla::MainTimeline/update()」というエラー メッセージが表示されます。それがどの用語を指しているのか分かりますか?

4

2 に答える 2