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

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

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

Регистрация: Apr 2009
Адрес: kup78.livejournal.com
Сообщений: 84
Post default параметры в конструкторе

Хочется странного... чтобы при создании, по new MySuperSprite(), спрайт получал некие, заранее извесные координаты. А по new MySuperSprite(new Point(x, y)) соответсвенно позиционировался куда скажут.

Код AS3:
package
{
	import flash.geom.Point;
	import flash.display.Sprite;
 
	class MySuperSprite extends Sprite
	{
		function MySuperSprite(position:Point = new Point())
		{
			super();
 
			this.x = position.x;
			this.y = position.y;
		}
	}
}
Можно конечно все по другому сделать. Но искал в хелпе - не нашел явного запрета.

Старый 14.06.2009, 21:17
BlooDHounD вне форума Посмотреть профиль Отправить личное сообщение для BlooDHounD Посетить домашнюю страницу BlooDHounD Найти все сообщения от BlooDHounD
  № 2  
Ответить с цитированием
BlooDHounD
стервочка (я мужик)
 
Аватар для BlooDHounD

блогер
Регистрация: Mar 2004
Адрес: Борисов
Сообщений: 3,161
Записей в блоге: 22
Код AS3:
package {
	import flash.geom.Point;
	import flash.display.Sprite;
 
	class MySuperSprite extends Sprite {
 
		public function MySuperSprite(position:Point=null) {
			super();
 			if ( !position ) position = new Point();
			this.x = position.x;
			this.y = position.y;
		}
	}
}

Старый 14.06.2009, 21:21
Яски вне форума Посмотреть профиль Отправить личное сообщение для Яски Найти все сообщения от Яски
  № 3  
Ответить с цитированием
Яски

блогер
Регистрация: May 2008
Адрес: (0, 10, 185) в локальной системе
Сообщений: 721
Записей в блоге: 6
Цитата:
Новой возможностью ActionScript 3.0 является способность объявлять для функции значения параметров по умолчанию. Если вызывается функция со значениями параметров по умолчанию, используются значения, указанные для параметров в определении функции. Все параметры со значениями по умолчанию должны быть помещены в конец списка параметров. Значения, которые присвоены в качестве значений по умолчанию должны быть константами, определяемыми во время компиляции. Существование для параметра значения по умолчанию фактически делает этот параметр необязательным параметром. Параметр без значения по умолчанию считается обязательным параметром.
http://help.adobe.com/ru_RU/ActionSc...0204-7f56.html
Но можно написать так:
Код AS3:
function Constructor(point:Point = null) {
  this.x = (point == null) ? 0 : point.x;
  this.y = (point == null) ? 0 : point.y;
}
__________________
TankiOnline
Я разработчик Alternativa3D

Старый 14.06.2009, 21:46
kup вне форума Посмотреть профиль Отправить личное сообщение для kup Найти все сообщения от kup
  № 4  
Ответить с цитированием
kup

Регистрация: Apr 2009
Адрес: kup78.livejournal.com
Сообщений: 84
Спасибо, но все же очень спорный запрет. Например,

Код AS3:
public static const pnt:Point = new Point(10, 20);
вполне может быть константой. Обидно что,

Код AS3:
function Constructor(pointX:Number = 0, pointY:Number = 0)
работает и как бы подталкивает плодить сущности...

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

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Код AS3:
function Constructor( position:Point = new Point(10, 20) ) {
    // whatever else;
}
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

Старый 15.06.2009, 12:11
BlooDHounD вне форума Посмотреть профиль Отправить личное сообщение для BlooDHounD Посетить домашнюю страницу BlooDHounD Найти все сообщения от BlooDHounD
  № 6  
Ответить с цитированием
BlooDHounD
стервочка (я мужик)
 
Аватар для BlooDHounD

блогер
Регистрация: Mar 2004
Адрес: Борисов
Сообщений: 3,161
Записей в блоге: 22
dimarik, и этот код работает?

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

Регистрация: May 2003
Адрес: Tallinn
Сообщений: 3,182
сомневаюсь

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

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

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

Регистрация: Apr 2009
Адрес: kup78.livejournal.com
Сообщений: 84
Вот и я с разбегу на эти грабли наступил. В других языках, есть костыль в виде forward declaration. Пишем class Point; и компилятор считает, что все путем.

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

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

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


 


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


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