Actionscript 3 转换;这";从as2到as3的关键字

Actionscript 3 转换;这";从as2到as3的关键字,actionscript-3,this,actionscript-2,Actionscript 3,This,Actionscript 2,我是ActionScript3的新手,在将“this”关键字从as2转换为as3时遇到了一个问题。 请帮帮我 谢谢 我的as2代码是: var selected = MovieClip(null); j = 1; while (j++, j <= 11) { var obj_1 = this["shape" + j]; obj_1.highlight._visible = false; obj_1.onPress = function() {

我是ActionScript3的新手,在将“this”关键字从as2转换为as3时遇到了一个问题。 请帮帮我

谢谢

我的as2代码是:

var selected = MovieClip(null);
j = 1;
while (j++, j <= 11)
{
    var obj_1 = this["shape" + j];
    obj_1.highlight._visible = false;
    obj_1.onPress = function()
    {
        if (_root.selected)
        {
            _root.selected.highlight._visible = false;
        }
        // end if        
        this.highlight._visible = true;
        _root.selected = this;
        trace(this)
    };
}// end while
var selected=MovieClip(空);
j=1;

而在as2
中的(j++,j,此
指的是将
onPress
函数添加到的对象,
obj1
。 在as3
中,此
指的是定义函数的类/对象,在本例中指的是主时间轴。在as3中,您可以从
MouseEvent

while (j < 11)
{
    j++;
    var obj_1:MovieClip = this['shape' + j];
    //trace(obj_1);
    obj_1.highlight.visible = false;
    obj_1.addEventListener(MouseEvent.CLICK, pressed);
    function pressed(event:MouseEvent):void
    {


        if (MovieClip(root).selecteD)
        {
            trace(MovieClip(root).selecteD);

            selecteD.highlight.visible = false;
        }

        var clickedObject:MovieClip = event.currentTarget as MovieClip;
        MovieClip(root).selecteD = clickedObject;
        MovieClip(root).selecteD.highlight.visible = true;

    }
}
while(j<11)
{
j++;
var obj_1:MovieClip=这个['shape'+j];
//跟踪(obj_1);
obj_1.highlight.visible=false;
obj_1.addEventListener(MouseEvent.CLICK,按下);
按下功能(事件:MouseEvent):无效
{
if(MovieClip(root).选中)
{
轨迹(MovieClip(root.),选中);
selecteD.highlight.visible=false;
}
var clickedObject:MovieClip=event.currentTarget作为MovieClip;
MovieClip(root).selecteD=单击对象;
MovieClip(root).selecteD.highlight.visible=true;
}
}
这句话很好:

对方法的包含对象的引用。当脚本执行时,
this
关键字引用包含脚本的对象。在方法体中,
this
关键字引用包含被调用方法的类实例

需要注意的是,和仍然存在于AS3中,这在某些情况下会改变
this
的预期值

while (j < 11)
{
    j++;
    var obj_1:MovieClip = this['shape' + j];
    //trace(obj_1);
    obj_1.highlight.visible = false;
    obj_1.addEventListener(MouseEvent.CLICK, pressed);
    function pressed(event:MouseEvent):void
    {


        if (MovieClip(root).selecteD)
        {
            trace(MovieClip(root).selecteD);

            selecteD.highlight.visible = false;
        }

        var clickedObject:MovieClip = event.currentTarget as MovieClip;
        MovieClip(root).selecteD = clickedObject;
        MovieClip(root).selecteD.highlight.visible = true;

    }
}