首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >as3使用实例字符串名称更改mc上的属性

as3使用实例字符串名称更改mc上的属性
EN

Stack Overflow用户
提问于 2014-02-03 07:33:56
回答 1查看 478关注 0票数 0

我在电影剪辑里有很多按钮。与其为每个监听器创建侦听器,我只想根据它们在mc中单击的目标执行一个操作。我想要根据他们点击的按钮来更改alpha。这是如何做到的呢?

下面我尝试了4种选择,但这些都没有效果。

代码语言:javascript
运行
复制
      manyButtons.addEventListener(MouseEvent.MOUSE_UP, mUp);

function mDown(e:Event)
        {
trace(e.target.name); // Works! Outputs name of button I click              
this[e.target.name].alpha = .5; // Does not work
e.target.name.alpha = .5; // Error: can not create property alpha on sting
e.target.alpha = .5; // changes ALL children buttons and parent mc.
        }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-02-03 08:12:10

e.target.name返回按钮的名称,正如您已经观察到的那样。但你的按钮不在“这个”里。它在this.manyButtons里。你必须提供完整的路径。因此,解决办法是:

代码语言:javascript
运行
复制
this.manyButtons[e.target.name].alpha = .5;

...assuming表示按钮是manyButtons显示对象的子元素。

顺便说一句,一个更好的方法就是:

代码语言:javascript
运行
复制
MovieClip(e.target).alpha = .5

编辑:如果您来自AS2 ->,请记住侦听器中的作用域不再更改。如果你以前写过这样的东西,忘了它吧:

代码语言:javascript
运行
复制
this.manyButtons.onRelease = function() {
   trace(this); //this changed the scope to the manyButtons object!
}

this在as3中不再改变。它总是指在其中声明的对象!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21521932

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档