Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 18.01.2010, 03:11
rellanium вне форума Посмотреть профиль Отправить личное сообщение для rellanium Найти все сообщения от rellanium
  № 1  
Ответить с цитированием
rellanium

Регистрация: Jan 2010
Сообщений: 2
По умолчанию Как добавить слушателя кнопке?

Всем привет и доброго времени суток.
Кто может подскажите. Если это где-то было, то не обессудте и в топку не кидайте.
Вобщем, я создал клип-рекламный банер. Создал новый слой, который виден постоянно, на протяжении всего клипа и не изменяется. На слое создал кнопки. Сначала нарисовал их, потом правая кнопка мыши-> преобразовать в символ. Выбираю тип "кнопка", в том же окне ввожу имя knopa1, класс knopa1. OK. В библиотеке появился экземпляр knopa1.
Хочу подключить для начала "хэлоу ворд!" к одной из кнопок. Делаю следующее.
Файл->создать->файл Action Script
В нём пишу:

Код AS3:
package {
import flash.display.*;
import flash.events.*;
import flash.net.*;
 
public class Main extends Sprite {
  public function Main()
  {
    knopa1.addEventListener(MouseEvent.CLICK, this.openURL);
  }
  public function openURL(event:MouseEvent)
 {
	trace("button pressed");
//var url:String = "http://www.adobe.com";
//var request:URLRequest = new URLRequest(url);
//navigateToURL (request, "_blank");
  }
 }
}
Сохраняю с именем Main.as рядом с proj.fla

CTRL+Enter

Выводит следующее: TypeError: Error #1006: addEventListener is not a function.
at Main1$iinit()

Кто знает, в чём косяк?? Хэлп, а то я собрался уже убиваться))))
Самая элементарщина, а во флэше не даётся... ((( надежда на вас, уважаемые!!!

Да, забыл скаазать, что в свойствах публикации проекта указал базовый класс Main

Благодарю за внимание и сострадание

Добавлено через 7 минут
Только не блокируйте пост за "неотражение темы вопроса в заголовке"
Хотел изменить заголовок, он не меняется, тема не удаляется, sorry


Последний раз редактировалось wvxvw; 18.01.2010 в 04:27.
Старый 18.01.2010, 04:26
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 2  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Сейчас пользователи сами не могут менять название темы, если ошиблись - оставьте в топе сообщение, модераторы прочитают и поменяют.

В вашем случае, очевисно что
- либо knopa1 не существует.
- либо компилятор не знает, что такое knopa1.
- либо она не наследует EventDispatcher.
Технически, вы
1. должны были объявить ее в вашем классе.
2. удостоверится в ее наличии.
3. вызвать в классе super() в конструкторе.
__________________
Hell is the possibility of sanity

Старый 18.01.2010, 05:08
rellanium вне форума Посмотреть профиль Отправить личное сообщение для rellanium Найти все сообщения от rellanium
  № 3  
Ответить с цитированием
rellanium

Регистрация: Jan 2010
Сообщений: 2
кнопку компилятор видет. Если изменить её имя, он пишет:
Variable knopa11 is not defined. at Main1$iinit()

1. должны были объявить ее в вашем классе.

Если она в библиотеке, то её не видно в классе??

Попробовал сделать всё, как написано выше но в новом проекте - работает. когда один кадр, один слой и больше ничего нет, то всё путём. без super()


В готовом проекте - такой косяк... неужели переделывать всё из-за этого???

Признаться, в VS всё гараздо проще, кнопку на форму, повесил на неё функцию и всё ровно... а тут эээххх.....

Добавлено через 9 часов 55 минут
Думал,что для вас это не проблема. Чтож курю хелп по третьему кругу.

Старый 20.01.2010, 00:18
XoJlToH вне форума Посмотреть профиль Отправить личное сообщение для XoJlToH Найти все сообщения от XoJlToH
  № 4  
Ответить с цитированием
XoJlToH
 
Аватар для XoJlToH

Регистрация: Sep 2006
Сообщений: 145
так не обязательно же пэкеджи использовать. тем более для вашего проэкта.
Код AS3:
import flash.display.*;
import flash.events.*;
import flash.net.*;
 
knopa1.addEventListener(MouseEvent.CLICK, navigate);
 
function navigate(event:MouseEvent)
 {
trace("button pressed");
//var url:String = "http://www.adobe.com";
//var request:URLRequest = new URLRequest(url);
//navigateToURL (request, "_blank");
  }
уберите указание на пэкэдж и просто вставьте этот код в первый кадр

Создать новую тему Ответ Часовой пояс GMT +4, время: 15:58.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 15:58.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.