Actionscript 3没有编译错误,输出却吓坏了

时间:2013-03-07 02:31:26

标签: arrays actionscript

所以我对动作脚本3相当新,并且练习我制作了一个脚本,当点击数组中的三个方块之一时,它会将其移动到一个随机点。没有任何编译器错误,但输出说:

ReferenceError: Error #1069: Property x not found on String and there is no default value.
    at trying_Scene1_fla::MainTimeline/move_sq()

单击其中一个方块时。继承剧本:

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


var squares:Array=[ square_1, square_2, square_3]
var low:Number=1;
var high:Number=100;
var chosen:Number=Math.floor(Math.random()* (1+ high - low))+low;

for(var i=0; i<squares.length; i++){
    squares[i].addEventListener(MouseEvent.CLICK, move_sq);
}

function move_sq(e:MouseEvent):void{
    var square_num = e.target.name;
    if (chosen>50) {
        square_num.x -= Math.random()* 10
        square_num.y -= Math.random()* 10
    }
    else {
    square_num.x += Math.random()* 10
    square_num.y += Math.random()* 10
    }
}
enter code here

我希望它只是一个小错误或我不知道的事情,如果你可以帮忙请做。谢谢!

2 个答案:

答案 0 :(得分:1)

您可以通过在鼠标侦听器功能中执行此操作来修复错误:

var square_num = e.target;

但如果您知道类型:

,则可以执行此操作
var square_num:MovieClip = MovieClip(e.target);

答案 1 :(得分:0)

这是因为“square_num”是一个字符串:

var square_num = e.target.name;

e.target的name属性是一个字符串,它没有x和y属性。我想你可能想用:

var square_num:MovieClip = (MovieClip) (e.target.name);

(我猜“square_1”,“square_2”和“square_3”是动画片段)