Action Script 3. 如何在 Flash 中访问 Movie Clip 中的按钮?
Posted
技术标签:
【中文标题】Action Script 3. 如何在 Flash 中访问 Movie Clip 中的按钮?【英文标题】:Action Script 3. How to access button from Movie Clip in Flash? 【发布时间】:2014-07-23 23:15:30 【问题描述】:我有一个名为 mClip 的 MyMovieClip。 mClip 内部有 2 个按钮,名为:btn1 btn2
我需要在我的动作脚本代码中访问这些按钮。我已经声明了它:
var mClip:MyMovieClip = new MyMovieClip();
var btn1:MyButton1 = new MyButton1();
var btn2:MyButton2 = new MyButton2();
我尝试了两种方法,但都没有成功:
1.
mClip.btn1.addEventListener(MouseEvent.CLICK, popUp1);
mClip.btn2.addEventListener(MouseEvent.CLICK, popUp2);
function popUp1(event:MouseEvent):void
trace("test 1");
function popUp2(event:MouseEvent):void
trace("test 2");
2.
btn1.addEventListener(MouseEvent.CLICK, popUp1); //removed mClip
btn2.addEventListener(MouseEvent.CLICK, popUp2); //removed mClip
function popUp1(event:MouseEvent):void
trace("test 1");
function popUp2(event:MouseEvent):void
trace("test 2");
我没有收到任何错误,只是单击按钮后没有任何反应。请问你能帮帮我吗?谢谢
【问题讨论】:
【参考方案1】:这是可能发生的事情。虽然我必须做出以下假设:
-
您使用的是 flash pro
在 flash pro 中,您创建了一个影片剪辑,将其放在主时间轴上,并为其指定实例名称 mClip
在 mClip 时间线上,您创建了两个按钮,并为它们指定了实例名称 btn1 和 btn2。
您的所有代码都在主时间线上。
当您执行以下操作时:
var mClip:MyMovieClip = new MyMovieClip();
var btn1:MyButton1 = new MyButton1();
var btn2:MyButton2 = new MyButton2();
您实际上是在告诉 flash 使用这些名称 (mClip, btn1,btn2) 并为它们分配 NEW 对象(旧的仍然存在,但 vars 指的是您拥有的新对象刚刚创建-因此您将单击事件添加到不在屏幕上的对象)。
当您将影片剪辑添加到时间轴并为其指定实例名称时,在幕后它实际上与该代码相同。删除这三行,你的第一次尝试的代码就可以工作了。 (假设我以上所有假设都是正确的,如果不正确,请告知)
【讨论】:
【参考方案2】:如果类被标记为dynamic
,第一次尝试将是正确的。但由于这不是你的情况,你应该直接使用变量:
btn1.addEventListener(..
IF 这与您定义它们的类完全相同(并将它们添加到 mClip 中)。实际发生的是您使用变量,而不是实例名称。您可能会遇到问题,因为您没有在定义这些按钮的地方工作。
如果这仍然不起作用,您可能正在单击该孩子上方的某些东西。
【讨论】:
【参考方案3】:从您的图表中并不完全清楚,但按钮应该有彩色(非空)字段(尽管 alpha 可以是任何东西,包括“零”)——这样您实际上是在点击某些东西。而且,如果“按钮”只是编码为按钮的影片剪辑,则标签应该是静态文本且不可选择。
我们假设您的代码是时间线代码,而不是编码类的一部分。
【讨论】:
以上是关于Action Script 3. 如何在 Flash 中访问 Movie Clip 中的按钮?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Flash CC/Action Script 3.0 中创建自定义 MovieClip 边界?
如何在 Adobe Flash Professional CS6 Action Script 3.0 中阻止可移动对象(通过箭头键移动)离开舞台
如何在 Odoo 11 中通过 do_action() java-script 方法显示 action_id