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

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

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

Регистрация: Feb 2010
Сообщений: 8
По умолчанию Проблема с событием на MovieClip

Есть 1 Movie clip "but", который содержит в себе 9 кнопок типа button "b1".."b9". На них нужно повесить событие. Пишу код.
Код AS3:
package{
	import flash.display.*;
	import flash.events.*;
	public class Marrakesh extends flash.display.MovieClip {
		public function Marrakesh () {
			addevent();
		}
		function addevent(){
			but.b1.addEventListener(MouseEvent.CLICK, cherch);
		}
		function cherch(event:MouseEvent):void{
			textall.textbox.text="FDSFdfsdfsdfsdf";
		};
	}
}
Выдает ошибку:
Код:
TypeError: Error #1009: Не удается вызвать свойство или метод со ссылкой на объект "null".
	at Marrakesh/addevent()
	at Marrakesh()
А суть в том, что нажатие определенной кнопки должно изменять текст. Помогите пожалуйста. Или направьте хотя бы... А то не понятно в каком направлении "копать"...


Последний раз редактировалось Sazor; 11.02.2010 в 22:17.
Старый 11.02.2010, 22:42
sergeyne вне форума Посмотреть профиль Отправить личное сообщение для sergeyne Найти все сообщения от sergeyne
  № 2  
Ответить с цитированием
sergeyne

Регистрация: Oct 2009
Сообщений: 5
Возможно необходимо сделать импорт класса для работы с текстом?
import flash.text.*;

Старый 11.02.2010, 23:02
Sazor вне форума Посмотреть профиль Отправить личное сообщение для Sazor Найти все сообщения от Sazor
  № 3  
Ответить с цитированием
Sazor

Регистрация: Feb 2010
Сообщений: 8
Нет. Я понял что проблема из-за мувиков. И для них нужно отдельные классы, их нужно к основному подключить, чтоб объекты использовать...

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

Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
у баттонов внутри объекта but инстантнэймы правильно прописаны?
ругается не на классы, ругается на отсутствие объекта.

кстати, когда выполнение доберется до cherch, import flash.text.* все равно понадобится

Старый 12.02.2010, 13:16
Sazor вне форума Посмотреть профиль Отправить личное сообщение для Sazor Найти все сообщения от Sazor
  № 5  
Ответить с цитированием
Sazor

Регистрация: Feb 2010
Сообщений: 8
Правильно прописаны... Насколько я понял проблема из-за того, чтоб баттоны и текст содержаться в муви клипах. По одному совету, я их(муви клипы) экспортнул для AS. Переписал код
Код AS3:
package{
	import flash.display.*;
	import flash.text.*;
	import flash.events.*;
	public class Marrakesh extends flash.display.MovieClip {
		public var b1 = but.getChildByName("b1"); 
		public var textbox = textall.getChildByName("textbox");
		public function Marrakesh()
		{
			addevent();
		}
		function addevent(){
			b1.addEventListener(MouseEvent.CLICK, cherch);
		}
		function cherch(event:MouseEvent):void{
			textbox.text="FDSFdfsdfsdfsdf";
		};
	}
}
Но появилась ошибка
Код:
1026: Constructor functions must be instance methods.
Добавлено через 3 часа 21 минуту
Проблему решил.Теперь новая. Проблема в слое маске. Когда начинается проявление и слой-маска задействуется, он как бы перекрывает нажатия мыши... Т.е. я как бы на него нажимаю. Как решить проблему?) Просто убрать слой-маску не вариант... Он как бы нужен)


Последний раз редактировалось Sazor; 12.02.2010 в 16:38.
Старый 13.02.2010, 00:43
mikhailk вне форума Посмотреть профиль Отправить личное сообщение для mikhailk Найти все сообщения от mikhailk
  № 6  
Ответить с цитированием
mikhailk
 
Аватар для mikhailk

Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
Разделите функционал и визуализацию.
Внизу контейнер с маской и всеми прибамбасами, сверху контейнер с прозрачными плашками-кнопками.

Старый 13.02.2010, 17:25
Elser вне форума Посмотреть профиль Отправить личное сообщение для Elser Найти все сообщения от Elser
  № 7  
Ответить с цитированием
Elser
 
Аватар для Elser

Регистрация: Feb 2009
Адрес: Ялта, Севастополь, Одесса
Сообщений: 52
метериал к размышлению
Цитата:
...он как бы перекрывает нажатия мыши...
только если подписан на прослушивание событий


Последний раз редактировалось Elser; 13.02.2010 в 17:28.
Создать новую тему Ответ Часовой пояс GMT +4, время: 09:41.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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