在AS3中隐藏按钮?

时间:2010-01-13 16:46:42

标签: flash actionscript-3 actionscript adobe-flash-cs3

我有一个名为myBtn的按钮。

在第1帧的行动中,我尝试了两种方法:

myBtn.visibility = false;

myBtn.enabled = false;

两者都给我同样的错误:

  

1120:访问未定义的属性myBtn。

6 个答案:

答案 0 :(得分:5)

确定。有几种方法可以做到这一点。第一个只涉及使用时间表。

方法1 - 时间表

步骤1.转到“窗口”选项卡,然后选择组件。将Button实例拖到舞台上。

步骤2.在属性面板中,显示“实例名称”,替换为“myBtn”(确保不使用引号:P)

步骤3.在时间轴上,在第1帧中输入此代码。

myBtn.visible = false;

方法2 - 文档类

步骤1.在舞台上放置一个实例,如时间轴

步骤2.创建一个类,让我们称之为资源。

步骤3.添加

import flash.display.SimpleButton; 

步骤4.创建公共静态成员

public static var BTN_MY_BUTTON:SimpleButton;

步骤5.在文档类中,将其添加到contstructor。

addEventListener(Event.ADDED_TO_STAGE, init, false, 0, true);

步骤6.添加此功能

private function init(e:Event):void

 Resource.BTN_MY_BUTTON = myBtn;
}

步骤7.现在,在任何课程中,您都可以通过

访问该按钮
Resource.BTN_MY_BUTTON.visible = false;

答案 1 :(得分:2)

如果你当前有一个文档类,那么放在舞台上的任何实例都需要在文档类中声明。

例如:如果你在舞台上放置了Button类的对象,并将其命名为myBtn,那么你的文档类需要如下所示:

package {
  import flash.display.MovieClip;
  import flash.display.Button;

  public class DocClass extends MovieClip {
    public var myBtn:Button;  // !!! This is the line that lets you access the instance

    public function DocClass() {
      //..
    }
  }
}

否则,拥有doc类但不声明实例的组合将给你1120错误。

答案 2 :(得分:2)

  

1120:访问未定义的属性myBtn。

这确实意味着您的按钮没有名称。您必须在按钮的属性面板中为您提供名称按钮,在字段(实例名称)中,您将名称设为myBtn 并在行动中写道:

myBtn.visible=true; // visible button

myBtn.visible=false; // or to make your button invisible;

答案 3 :(得分:1)

如果您在库中有一个按钮,则可以使用以下内容向舞台添加新实例:

import fl.controls.Button;

var myBtn:Button = new Button();
addChild(myBtn);

然后你可以引用它并像这样隐藏它:

myBtn.visible = false;

最好在@Ipsquiggle建议的单独的课程中这样做。

答案 4 :(得分:0)

您收到此错误是因为AS3编译器无法解析名称'myBtn'。

什么是'myBtn'?它是一个符号,组件或命名实例吗?

一旦你澄清了这一点,下面的代码将完成这项工作:

myBtn.visible = false;

答案 5 :(得分:0)

如果您对从时间线访问按钮非常感兴趣,我建议您坚持使用AS2,因为它极大地简化了此过程。涉及访问编辑器中的实例,从时间轴运行代码等的许多场景在AS3中变得不那么重要。

如果您想坚持使用AS3,那么您应该创建一个文档类,而不是将代码放在第1帧中,然后您可以在那里声明您在舞台上拥有的对象,这样可以简化对它们的访问。