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

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

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

Регистрация: Oct 2009
Сообщений: 155
По умолчанию Область видимости из метода.

Доброго времени суток всем! Подскажите пож. Почему?

Есть базовый класс обычного окна:

Код AS3:
package classes{
 
	import flash.display.MovieClip;
 
           public class baseWindow extends MovieClip {
 
		public var X:Number;
		public var Y:Number;
		public var w:Number;
		public var h:Number;
 
		public function baseWindow(newX:Number, newY:Number, newW:Number, newH:Number) {
 
			// рисуем окошко	
		}
	}
}
Есть надкласс этого класса - окно №1. Расширяемся тут конешно от базового окна.

Код AS1/AS2:
package classes {
 
	import classes.baseWindow;
           import classes.buttons.Close;
 
 
	public class remainingWindow extends baseWindow {
 
		private var closeBut:Close; // кнопка закрытия окна
 
 
		public function remainingWindow():void {
 
			w = 300;
			X = (550/2) - (w/2);
			Y = 100;
			h = 200;
 
                                 super(X, Y, w, h); // рисуем окно #1
 
			createButtons();  // добавляем кнопки на окно №1 ( только одну кнопку )
 
		}
 
		private function createButtons():void {
 
			closeBut = new Close();
			closeBut.x = X+w;
			closeBut.y = Y;
			addChild(closeBut);
 
		}
 
	}
 
}

Вопрос... в методе-конструкторе класса "remainingWindow" свойства его СУПЕРКЛАССА X,Y,w,h - видны. А вот из метода createButtons() эти свойства уже НЕ ВИДНЫ..
Почему?
Спасибо!

Старый 08.07.2010, 14:07
mayakwd вне форума Посмотреть профиль Отправить личное сообщение для mayakwd Посетить домашнюю страницу mayakwd Найти все сообщения от mayakwd
  № 2  
Ответить с цитированием
mayakwd
 
Аватар для mayakwd

Регистрация: Jul 2008
Адрес: t:2, x: 0.76
Сообщений: 553
Отправить сообщение для mayakwd с помощью ICQ Отправить сообщение для mayakwd с помощью Skype™
видны.
и не пишите названия класса с маленькой буквы.
__________________
Блог, Twitter
Брюзга.

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

Регистрация: Oct 2009
Сообщений: 155
сори... не невидима, а NaN...

Добавлено через 11 минут
прошелся по дебагу. NaN-ами эти переменные становятся при выхове конструктора суперкласса...почему?(

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

Регистрация: Jan 2009
Адрес: Петерсбург
Сообщений: 1,882
А вы их инициализируйте
Код AS3:
public var X:Number = 0;
public var Y:Number = 0;
public var w:Number = 0;
public var h:Number = 0;

Старый 08.07.2010, 14:38
NAO111 вне форума Посмотреть профиль Отправить личное сообщение для NAO111 Найти все сообщения от NAO111
  № 5  
Ответить с цитированием
NAO111

Регистрация: Oct 2009
Сообщений: 155
помогло! Спасибо) Теоретически не объясните почему без иниц. не получалось?

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

блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
Отправить сообщение для -De- с помощью ICQ Отправить сообщение для -De- с помощью Skype™
Поля базового класса инициализируются при вызове его конструктора (и если не нулями, то NaN). Потому и присваивание до вызова базового конструктора - бесполезно. Тогда уж super(300, 550/2, 100, 200); писать

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

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

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


 


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


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