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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 31.03.2009, 12:20
CrazyFlasher вне форума Посмотреть профиль Отправить личное сообщение для CrazyFlasher Найти все сообщения от CrazyFlasher
  № 31  
Ответить с цитированием
CrazyFlasher
 
Аватар для CrazyFlasher

Регистрация: May 2003
Адрес: Tallinn
Сообщений: 3,181
поидее в конструкторе он подефолту срабатывает сразу, если без дополнительных переметров...хотя может ошибаюсь

Старый 31.03.2009, 12:47
litebox вне форума Посмотреть профиль Отправить личное сообщение для litebox Найти все сообщения от litebox
  № 32  
Ответить с цитированием
litebox
 
Аватар для litebox

Регистрация: Jul 2008
Адрес: Украина, Киев
Сообщений: 253
Если бы super срабатывал по умолчанию сразу, какой бы был прок вообще его писать?

Вот пример:
Код AS3:
package
{
	import flash.display.MovieClip;
 
	public class BaseClass extends MovieClip
	{
		public static const CONST:String = "CONST";
 
		protected var num:int;
 
		public function BaseClass()
		{
			num = 10;
		}
	}
 
}
Код AS3:
package
{
 
	public class MainClass extends BaseClass
	{
 
		public function MainClass()
		{
			trace(num);
			trace(BaseClass.CONST);
 
			super();
 
			trace(num);
			trace(BaseClass.CONST);
		}
	}
 
}
Вывод:
Код:
0
CONST
10
CONST
Все выполняется в том порядке, в котором определил программист

Старый 31.03.2009, 13:01
: hr : вне форума Посмотреть профиль Отправить личное сообщение для : hr : Найти все сообщения от : hr :
  № 33  
Ответить с цитированием
: hr :

Регистрация: Nov 2003
Сообщений: 289
мм.., да litebox Вы правы...

Старый 31.03.2009, 13:54
CrazyFlasher вне форума Посмотреть профиль Отправить личное сообщение для CrazyFlasher Найти все сообщения от CrazyFlasher
  № 34  
Ответить с цитированием
CrazyFlasher
 
Аватар для CrazyFlasher

Регистрация: May 2003
Адрес: Tallinn
Сообщений: 3,181
я сторонник всегда вызывать super() в конструкторе, но в случае, если его не вызывать, то получается, что он вызывается в конце конструктора?
Код:
package 
{
	import flash.display.Sprite;
	
	public class MySprite extends Sprite 
	{
		public function MySprite() {
			
		}
	}
	
}

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

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Цитата:
речь о том, что в AS2 свойство экземпляра могло объявляться только как выражение, значение которого может быть полностью определено на этапе компиляции.
Свойства экземпляра - это чистый рантайм. Может Вы имели ввиду свойства класса?
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

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

Регистрация: Nov 2003
Сообщений: 289
если не вызывать, вызывается в начале:

Код AS3:
package  
{
	public class SampleSuperClass 
	{
		public var a:int = -1;
 
		public function SampleSuperClass() 
		{			
			a = 1;
		}
 
	}
 
}
Код AS3:
package  
{
	public class SampleClass extends SampleSuperClass
	{
		public function SampleClass() 
		{
			trace(a);
 
			a = 2;
 
			trace(a);
 
		}
 
	}
 
}
Выводит:

Код:
1
2

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

Регистрация: May 2003
Адрес: Tallinn
Сообщений: 3,181
ага...тоже проверил

Старый 31.03.2009, 15:17
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 38  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Господи пожалуйста не Новосибирск
Сообщений: 6,598
Записей в блоге: 17
Смотрю на код : hr : и litebox и думаю... Код по идее одинаков, а результаты разные... Сейчас нет возможности проверить, и кто из них прав?

UPD: А, все, каким то боком проглядел super()


Последний раз редактировалось Psycho Tiger; 31.03.2009 в 15:21.
Старый 31.03.2009, 15:23
CrazyFlasher вне форума Посмотреть профиль Отправить личное сообщение для CrazyFlasher Найти все сообщения от CrazyFlasher
  № 39  
Ответить с цитированием
CrazyFlasher
 
Аватар для CrazyFlasher

Регистрация: May 2003
Адрес: Tallinn
Сообщений: 3,181
разный код...у : hr : super() вызывается по дефолту в начале

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

Регистрация: Jul 2008
Адрес: Украина, Киев
Сообщений: 253
Да, если super() не вызывать принудительно, оно вызывается в начале, вполне логичная система, так и в Delphi было, хотя, давно это было...

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

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

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


 


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


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