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

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

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

Регистрация: Oct 2006
Сообщений: 73
По умолчанию Конструктор класса с параметрами

Здравствуйте,
можно ли задавать конструктор класса с параметрами?
То есть например так:

Код:
package classes{
	import flash.display.MovieClip;
	import flash.display.Sprite;
	import flash.text.TextField;
	public class InputTxtField extends Sprite {
		public function InputTxtField(xPoint:uint, yPoint:uint, w:uint, h:uint) {
			doDrawRect(w, h);
			doDrawTxt(w, h);
			this.getChildAt(0).x=xPoint;
			this.getChildAt(0).y=yPoint;
		}
		private function doDrawRect(wdth:uint, hght:uint) {
			var rect:Sprite = new Sprite;
			rect.graphics.beginFill(0xdddddd);
			rect.graphics.lineStyle(1, 0x999999);
			rect.graphics.drawRect(0, 0, wdth, hght);
			rect.graphics.endFill();
			addChild(rect);
		}
		private function doDrawTxt(wdth:uint, hght:uint) {
			var txt:TextField = new TextField;
			txt.x=0;
			txt.y=0;
			txt.border = true;
			txt.width = wdth;
			txt.height = hght;
			txt.text = "Привет";
			addChild(txt);
		}
	}
}

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

Регистрация: Jul 2008
Адрес: Украина, Киев
Сообщений: 253
Можно

Старый 31.07.2008, 22:05
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 3  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Да, только зачем передавать 4, когда можно 1 (Rectangle)? И если собираетесь использовать в качестве компонента (т.е присвоить этот класс клипу в библиотеке) нужно задать дефолтные значения аргументам.
Кроме того не типизировать значения возвращаемые методами - плохо. Ссылаться на нигде не объявленные инстансы чего бы то ни было типа getChildAt() - тоже плохо, как минимум в try{}catch(){} поместите.
Если вы вызываете конструктор без круглых скобок, имейте в виду, что это не то же самое, что нормальное создание экземпляра класса. Особенно, если это пользовательский класс.
__________________
Hell is the possibility of sanity

Старый 31.07.2008, 22:11
tikhop вне форума Посмотреть профиль Отправить личное сообщение для tikhop Найти все сообщения от tikhop
  № 4  
Ответить с цитированием
tikhop

Регистрация: Jul 2006
Сообщений: 170
Цитата:
Сообщение от wvxvw Посмотреть сообщение
Если вы вызываете конструктор без круглых скобок, имейте в виду, что это не то же самое, что нормальное создание экземпляра класса. Особенно, если это пользовательский класс.
Не могли бы вы объяснить, что это (если мы вызываем конструктор без ())? Спасибо.

Старый 01.08.2008, 20:10
Dima_DPE вне форума Посмотреть профиль Отправить личное сообщение для Dima_DPE Найти все сообщения от Dima_DPE
  № 5  
Ответить с цитированием
Dima_DPE

блогер
Регистрация: Aug 2005
Сообщений: 178
Записей в блоге: 4
tikhop, имеется ввиду, писать так
Код:
var txt:TextField = new TextField();
var rect:Sprite = new Sprite();
а не так
Код:
var txt:TextField = new TextField;
var rect:Sprite = new Sprite;

Старый 01.08.2008, 20:13
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 6  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Скобки обязательны. Почему работает без них — непонятно, но за это надо отрывать руки.

Старый 04.08.2008, 09:56
terbooter вне форума Посмотреть профиль Отправить личное сообщение для terbooter Найти все сообщения от terbooter
  № 7  
Ответить с цитированием
terbooter

Регистрация: Oct 2006
Адрес: Novosibirsk-Kaliningrad
Сообщений: 1,278
Отправить сообщение для terbooter с помощью ICQ Отправить сообщение для terbooter с помощью Skype™
У мука на 17 странице такие примеры есть OReilly.Essential.ActionScript.3.0.Jun.2007.pdf
Цитата:
When creating a new object without constructor arguments, some programmers
choose to retain the constructor-argument parentheses. For
example, some programmers prefer to write:
new VirtualPet( )
rather than:
new VirtualPet
The choice is entirely stylistic; ActionScript allows both formats. However,
the ActionScript programming community favors the former
style (with parentheses) over the latter (without parentheses). Hence,
from now on, this book will always include parentheses when creating
new objects, even when no constructor arguments are used.
*Я когда увидел впервые инстанциацию без скобок у меня
глаза на лбу полдня были -)


Последний раз редактировалось terbooter; 04.08.2008 в 12:09.
Старый 04.08.2008, 12:07
divinus вне форума Посмотреть профиль Отправить личное сообщение для divinus Найти все сообщения от divinus
  № 8  
Ответить с цитированием
divinus
 
Аватар для divinus

Регистрация: Dec 2005
Адрес: мухосранск
Сообщений: 661
Отправить сообщение для divinus с помощью ICQ
ИМХО это просто некие, не понятные мне понты программистов...
наподобие заменять нормальное и удобное
Код:
i++;
на
Код:
i = -~i;
__________________
Кто может делать - делает, кто не может делать - учит, кто не может учить - управляет...

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

Регистрация: Jan 2007
Адрес: [1,1,1]
Сообщений: 135
Записей в блоге: 2
Отправить сообщение для PeTa4eK с помощью ICQ
divinus это не понты! Это способ сделать нечитабельным код для тех кто пытается украсть твой исходник. Или перекомпилировать

Старый 04.08.2008, 14:56
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 10  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
В ПХП это обычная практика - создавать инстансы не выполняя конструктор. В АС эта фича работает как-то не до конца, т.е. мне как-то попадался случай, когда создавая в цикле текстфилды таким способом Флеш просто "ленился" их создавать, т.е., предположим, штук 5 создавал, а потом просто игнорировал =)
Вобщем, в любом случае, если в конструкторе что-то надо выполнить, лучше так не делать, а то потом можно будет ооочень долго ошибки искать.
__________________
Hell is the possibility of sanity

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

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

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


 


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


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