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

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

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

Регистрация: Mar 2009
Адрес: Екатеринбург
Сообщений: 30
Отправить сообщение для Maraekb с помощью ICQ
По умолчанию Обращение к stage.stage*

К курсору в библиотеке добавил класс Cursor
Код AS3:
package 
{
	import flash.display;
	import flash.display.*;
	import flash.events.Event;
	import flash.events.MouseEvent;
	import flash.ui.Mouse;
 
	public class Cursor extends MovieClip
	{
/* * * * * * * * * *
*                  *
*  @author wolsh   *
*                  *
\* * * * * * * * * */
 
		public function Cursor() 
		{
			addEventListener(Event.ADDED_TO_STAGE, init);
			addEventListener(Event.REMOVED_FROM_STAGE, remove);
			trace(stage.stageHeight , stage.stageWidth)// ошибка
		}
 
		private function init(event:Event):void
		{
			this.removeEventListener(Event.ADDED_TO_STAGE, init);
			stage.addEventListener(Event.ADDED, onTop);
			stage.addEventListener(MouseEvent.MOUSE_MOVE, onMove);
			Mouse.hide();
			this.mouseEnabled = false;
			this.x = stage.mouseX;
			this.y = stage.mouseY;
			onTop();
		}
 
		private function remove(evt:Event):void
		{
			this.removeEventListener(Event.REMOVED_FROM_STAGE, remove);
			stage.removeEventListener(MouseEvent.MOUSE_MOVE, onMove);
			stage.removeEventListener(Event.ADDED, onTop);
			Mouse.show();
		}
 
		private function onMove(event:MouseEvent):void
		{
			this.x = event.stageX;
			this.y = event.stageY;
			event.updateAfterEvent();
		}
		public function onTop(event:Event = null):void
		{
			if (stage.getChildIndex(this) != stage.numChildren - 1) 
			{
				stage.setChildIndex(this, stage.numChildren - 1);
			}
			Mouse.hide();
		}
 
	}
 
}
Но при обращении к stage.stageHeight или stage.stageWidth вылазит ошибка
Цитата:
TypeError: Error #1009: Не удается вызвать свойство или метод со ссылкой на объект "null".
at Cursor()
at tesla::Main()
подскажите чё делать?

Старый 19.07.2010, 18:16
Zik. вне форума Посмотреть профиль Отправить личное сообщение для Zik. Найти все сообщения от Zik.
  № 2  
Ответить с цитированием
Zik.
 
Аватар для Zik.

Регистрация: Nov 2007
Сообщений: 1,723
А если в ините потрейсить?

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

Регистрация: Mar 2009
Адрес: Екатеринбург
Сообщений: 30
Отправить сообщение для Maraekb с помощью ICQ
тупнул

Добавлено через 2 минуты
Щас трэйсится но появилась новая ошибка
Цитата:
ArgumentError: Error #2025: Предоставленный DisplayObject должен быть дочерним элементом вызывающего объекта.
at flash.display:isplayObjectContainer/getChildIndex()
at Cursor/onTop()
at flash.display:isplayObjectContainer/addChild()
at tesla::Main/pos_obj()
at tesla::Main()
она о чём говорит? как её исправить можно

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

блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
Отправить сообщение для -De- с помощью ICQ Отправить сообщение для -De- с помощью Skype™
Строку с ошибкой в инит перенести, до того как ADDED_TO_STAGE прийдёт stage есть null, потому-то на ADDED_TO_STAGE подписываются, а не просто в конструкторе инит вызывают.

Старый 19.07.2010, 18:28
Zik. вне форума Посмотреть профиль Отправить личное сообщение для Zik. Найти все сообщения от Zik.
  № 5  
Ответить с цитированием
Zik.
 
Аватар для Zik.

Регистрация: Nov 2007
Сообщений: 1,723
А зачем вам два раза вызывать функцию onTop()?

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

Регистрация: Mar 2009
Адрес: Екатеринбург
Сообщений: 30
Отправить сообщение для Maraekb с помощью ICQ
Класс не мой там даже авторство есть)))
Ошибка как разпосле вызова onTop() появляется.
я несильно понимаю то что там описано поэтому чёто немогу понять в чём и где там ошибка(((

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

Регистрация: Jun 2006
Адрес: Москва
Сообщений: 461
а вы сам курсор добавили на сцену?

Старый 20.07.2010, 02:26
Maraekb вне форума Посмотреть профиль Отправить личное сообщение для Maraekb Найти все сообщения от Maraekb
  № 8  
Ответить с цитированием
Maraekb
 
Аватар для Maraekb

Регистрация: Mar 2009
Адрес: Екатеринбург
Сообщений: 30
Отправить сообщение для Maraekb с помощью ICQ
Естественно)) Без добавления ничего бы неработало))) Ошибка как мне кажется в строке
Код AS3:
stage.getChildIndex(this)
и
Код AS3:
stage.setChildIndex(this, stage.numChildren - 1)
а как справить незнаю( незнаю на что заменить this

Старый 20.07.2010, 11:30
Zik. вне форума Посмотреть профиль Отправить личное сообщение для Zik. Найти все сообщения от Zik.
  № 9  
Ответить с цитированием
Zik.
 
Аватар для Zik.

Регистрация: Nov 2007
Сообщений: 1,723
В чем разница строчек
Код AS3:
addEventListener(Event.REMOVED_FROM_STAGE, remove);
и
Код AS3:
stage.addEventListener(Event.ADDED, onTop);
если все равно смотрится лишь наличие объекта на stage?

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

Теги
null , stage
Опции темы
Опции просмотра

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

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


 


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


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