Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 访问类成员_Actionscript 3_Actionscript - Fatal编程技术网

Actionscript 3 访问类成员

Actionscript 3 访问类成员,actionscript-3,actionscript,Actionscript 3,Actionscript,我有一门课是ABC: class ABC { var l:Label=new Label(); var m:MovieClip=new MovieClip(); } 给定一个类ABC的实例,例如obj: var obj:ABC=new ABC(); 我需要访问obj.m和obj.l。假设m有一个eventlistenerfl\u listen,鼠标点击即可触发: function fl_listen(event:MouseEvent):void { var k=eve

我有一门课是ABC:

class ABC
{
    var l:Label=new Label();
    var m:MovieClip=new MovieClip();
}
给定一个类
ABC
的实例,例如
obj

var obj:ABC=new ABC();
我需要访问
obj.m
obj.l
。假设
m
有一个eventlistener
fl\u listen
,鼠标点击即可触发:

function fl_listen(event:MouseEvent):void
{ 
   var k=event.target;
}

在这个处理程序中,我可以访问
ABC
类的
MovieClip
。但是,我的需求要求访问
ABC
类中的
Label
对象。任何帮助都将不胜感激,我对使用ActionScript相当陌生。

我认为您应该重新考虑您的体系结构。 你为什么要用m来处理这个事件?只要收听ABC内部的事件并在那里处理事件,您就可以访问label和movieclip。如果您需要在movieclip实例m中执行一些逻辑,那么在您的mc中只处理这些逻辑

使用伪代码:

public class ABC
{

    var l:Label=new Label();
    var m:MovieClip=new MovieClip();

    function ABC(){
       m.addEventListener(MouseEvent.X,_handleX );
    }

    private function _handleX(e:Event):void{
       //you have access to both. Do what you need:
       m.alpha = 0.4;
       l.text = 'Changed';
    }


}

我认为你应该重新考虑你的架构。 你为什么要用m来处理这个事件?只要收听ABC内部的事件并在那里处理事件,您就可以访问label和movieclip。如果您需要在movieclip实例m中执行一些逻辑,那么在您的mc中只处理这些逻辑

使用伪代码:

public class ABC
{

    var l:Label=new Label();
    var m:MovieClip=new MovieClip();

    function ABC(){
       m.addEventListener(MouseEvent.X,_handleX );
    }

    private function _handleX(e:Event):void{
       //you have access to both. Do what you need:
       m.alpha = 0.4;
       l.text = 'Changed';
    }


}

重新考虑你的命名规则!重新考虑你的命名规则!