按钮无法访问。如何修复此代码?

Posted

技术标签:

【中文标题】按钮无法访问。如何修复此代码?【英文标题】:The button can't access. How to fix this code? 【发布时间】:2013-12-23 08:16:09 【问题描述】:

我是 AS3 的新手。我没有很好的 AS3 基础。 我的代码有什么问题? 没有错误! 请帮帮我。

package 


    import flash.display.MovieClip;
    import flash.events.MouseEvent;
    import flash.display.Button;


    public class gantiGambar extends MovieClip
        public function gantiGambar()
            // constructor code
            pertama();
        

        public function pertama():void
            lantai2.visible = false;
            lantai1.visible = false;
            stage.addEventListener(MouseEvent.CLICK, onClick);
        

        private function onClick(e:MouseEvent):void
            lantai1.visible = true;     
        

        if(lantai1.onClick == 1)
            lantai2.visible = true;
         
    


【问题讨论】:

【参考方案1】:

您正在尝试将侦听器添加到舞台,而该类可能尚未添加到舞台,因此stage 为空且无法收到任何响应。首先,您应该addEventListener 到实例,而不是到舞台 其次,将if (lantai1.onClick==1)的代码放入handler中,否则不会被调用。

this.addEventListener(MouseEvent.CLICK, onClick);

private function onClick(e:MouseEvent):void
    lantai1.visible = true;     
    if(lantai1.onClick == 1) 
        lantai2.visible = true;
    

【讨论】:

你的回答增加了一个听众到舞台;) 如果您滥用问题中的复制和粘贴,就会发生这种情况。固定。 感谢您的回复。我已经尝试了您的代码,但没有任何反应。 您的lantai1 的父母有什么可见的吗?如果什么都不可见,则监听器不会触发。另外,lantai1.onClick 是什么?如果是数字,则必须在某处设置。 对不起,我还是不明白。我把我的代码改成这样: package import flash.display.MovieClip;导入 flash.events.MouseEvent;公共类 BallJumper 扩展 MovieClip public function BallJumper() setup(); 私有函数 setup():void popup.visible = false; this.addEventListener(MouseEvent.CLICK, onClick); 私有函数 onClick(e:MouseEvent):void if(key.onClick == 1) popup.visible = true;

以上是关于按钮无法访问。如何修复此代码?的主要内容,如果未能解决你的问题,请参考以下文章

无法修复 laravel 中用户宅基地的访问被拒绝

无法访问已处置的对象 - 如何修复?

如何修复可访问性的空按钮?

谷歌浏览器为啥无法访问此网站

如何修复 Azure WebApp 的“无法访问 Azure 资源”

如何修复 React 中的“类型错误:尝试访问对象的属性时无法读取未定义的属性名称”