Ошибка AS3: «1172: определение fl.controls: кнопка не найдена». - PullRequest
4 голосов
/ 22 января 2010

Я пытаюсь создать класс с именем LinkButton, который является простым классом, который загружает URL по клику (я делаю это, чтобы упростить переход моих дизайнеров в AS3) . Несмотря на то, что я импортирую определение кнопки, файл AS получает ошибку компиляции: 1046: тип не найден или не является константой времени компиляции: Button. и 1172: определение fl.controls: кнопка не найдена. Я создал кнопку, сделав простую фигуру, преобразовав ее в символ (F8) типа «Кнопка». В моем файле FLA у меня есть этот код:

import AS3classes.mouse.LinkButton;
var link1:LinkButton = new LinkButton(testLink, "http://www.example.com");

Просто верно? В моем AS-файле я импортирую определение кнопки, объявляя конструктор и поведение linkTo. Вот мой код в файле AS:

package AS3classes.mouse
{
 import fl.controls.Button;
 import flash.events.*;
    import flash.net.*;

 public class LinkButton 
 {
  private var _pageURL:String;
  private var _button:Button;

  public function LinkButton(button, pageURL) : void
  {
   _button = button;
   _pageURL = pageURL;
   _button.addEventListener(MouseEvent.MOUSE_UP, LinkTo);
  }

  private function LinkTo(e:Event) : void
  {
   var request:URLRequest = new URLRequest(_pageURL);
  }
 }
}

Когда я гуглю это, я вижу людей, получающих эту ошибку, потому что у них нет кнопки в их библиотеке. У меня есть кнопка, которую я создал из простой формы. Я импортирую правильное определение? У меня нет проблем с импортом определения movieClip в другой скрипт с тем же методом. Я не понимаю разницы, и я почти уверен, что я не глупый.

Ответы [ 3 ]

6 голосов
/ 30 июня 2011

Вам нужно перейти к окну «Компоненты» и перетащить «Кнопку» в ваше «Библиотека» окно.

Чтобы использовать компонент, просто импортируйте его, используя инструкцию import fl.controls.Button;. Теперь вы можете использовать "Кнопка" с ее меткой и т. Д.

6 голосов
/ 22 января 2010

Вы используете неправильный тип кнопки. Как вы описываете, вы хотите

flash.display.SimpleButton

fl.controls.Button является компонентом Button, а не кнопкой, определенной в библиотеке. Есть смысл? Попробуйте импортировать flash.display.SimpleButton и установить вместо него _button как SimpleButton.

0 голосов
/ 06 марта 2012

Мэтт Дейлс - это верно. У меня только сейчас была точная проблема. «Кнопка» дурачила меня. На панели компонентов ctrl + f7 = я посмотрел группу «Видео» и попробовал оттуда кнопку. Не работает как кнопка. Посмотрите в группе «Пользовательский интерфейс». Возьмите «Кнопку» оттуда и перетащите в Библиотеку. Затем fl.controls.Button и Button () работают.

...