4

我有一个名为 myBtn 的按钮。

在第 1 帧的操作中,我尝试了以下两种方法:

myBtn.visibility = false;

myBtn.enabled = false;

两者都给我同样的错误:

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

4

6 回答 6

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 步。在您的文档类中,将其添加到构造函数中。

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;
于 2010-01-14T00:45:18.697 回答
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错误。

于 2010-01-13T17:38:51.090 回答
2

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

这确实意味着您的按钮没有名称。您必须在按钮的属性面板中为您的按钮命名,在字段(实例名称)中,您将输入名称 myBtn 并在操作中写入:

myBtn.visible=true; // visible button

或者

myBtn.visible=false; // or to make your button invisible;
于 2011-04-24T12:20:36.293 回答
1

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

import fl.controls.Button;

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

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

myBtn.visible = false;

正如@Ipsquiggle 建议的那样,最好在单独的课程中执行此操作。

于 2010-01-13T17:32:32.617 回答
0

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

什么是“myBtn”?它是符号、组件还是其中任何一个的命名实例?

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

myBtn.visible = false;
于 2010-01-13T16:53:40.420 回答
0

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

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

于 2010-01-13T17:06:03.027 回答