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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 01.05.2009, 03:25
vvvvvvf вне форума Посмотреть профиль Отправить личное сообщение для vvvvvvf Найти все сообщения от vvvvvvf
  № 11  
Ответить с цитированием
vvvvvvf
[+1 08.07.09]

Регистрация: Mar 2009
Сообщений: 107
Хорошо вопрос такой как можно добавить новое свойство в классе, в подобном коде?
Код AS3:
var sp:Sprite = new Sprite();
то есть как можно задать новое свойство например sp.id = 123;

просто мне по любому надо это знать, если очень жаба душит ответить прямо то дайте ссылку на документацию я с удовольствием почитаю в данный момент прочитал мануал про prototype то там так и не нашел как правильно присваивать новые свойства =((

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

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


Последний раз редактировалось wvxvw; 01.05.2009 в 04:09.
Старый 01.05.2009, 04:37
BlooDHounD вне форума Посмотреть профиль Отправить личное сообщение для BlooDHounD Посетить домашнюю страницу BlooDHounD Найти все сообщения от BlooDHounD
  № 13  
Ответить с цитированием
BlooDHounD
стервочка (я мужик)
 
Аватар для BlooDHounD

блогер
Регистрация: Mar 2004
Адрес: Борисов
Сообщений: 3,161
Записей в блоге: 22
Цитата:
Ну, наверное просто использовал apply()
wvxvw, я что-то не понимаю как связаны apply и Delegate.

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

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

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

блогер
Регистрация: Mar 2004
Адрес: Борисов
Сообщений: 3,161
Записей в блоге: 22
wvxvw, да нет. он нужен был не для того, что бы менять область видимости, а для того, что бы создавать анонимные функции, функционалом описанным табой это совсем не одно и тоже.

вот вызов функции в заданном контексте:
Код:
foo.apply( this, 5 )
делигейт в конечном итоге выглядит где так:
Код:
var a:Object = this;
var xml:XML = new XML();
xml.onLoad = function() {
    return foo.apply( a, arguments );
}
заменяется делегейт приблизительно так:
Код:
var a:Object = this;
var xml:XML = new XML();
xml.onLoad = function(success:Boolean):Void {
    a.foo( success );
}
и никаких apply не нужно. все параметры методов известны.

Старый 01.05.2009, 13:53
vvvvvvf вне форума Посмотреть профиль Отправить личное сообщение для vvvvvvf Найти все сообщения от vvvvvvf
  № 16  
Ответить с цитированием
vvvvvvf
[+1 08.07.09]

Регистрация: Mar 2009
Сообщений: 107
BlooDHounD вы уже задрали выеживаться, как же я не люблю подобный тип отношений к пользователям.
Если вас спрашивают конкретные вещи, то либо помогите, а если вас так жаба душит, то вообще ничего не пишите все равно от ваших советов мне легче не станет, работодателю нужна именно такая реализация и мне неважно плохо это или хорошо, либо так, либо никак!

Как хорошо, что есть еще нормальные люди, вот самый верный вариант мне подсказали на другом форуме
Код AS3:
package Battle{
	import flash.display.Sprite;
 
	public class MySprite extends Sprite {
		public var id:String;
 
		public function MySprite():void {
			super();
		}
	}
}

Теперь осталось пропахать только все классы и заменить там Sprite на MySprite


Последний раз редактировалось vvvvvvf; 01.05.2009 в 13:56.
Старый 01.05.2009, 16:03
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 17  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
чтобы не экстендить и не пропахивать ничего, можно этот id в nаme Sprite' а хранить, если нормальные решения так не по нутру

Старый 01.05.2009, 16:13
vvvvvvf вне форума Посмотреть профиль Отправить личное сообщение для vvvvvvf Найти все сообщения от vvvvvvf
  № 18  
Ответить с цитированием
vvvvvvf
[+1 08.07.09]

Регистрация: Mar 2009
Сообщений: 107
Цитата:
Сообщение от silin Посмотреть сообщение
чтобы не экстендить и не пропахивать ничего, можно этот id в nаme Sprite' а хранить, если нормальные решения так не по нутру
Дайте пожалуйста пример

Старый 01.05.2009, 16:33
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 19  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
Код AS3:
var list:Array = [];
for (var i:int = 0; i <= 5; i++) 
{
	var sprite:Sprite = new Sprite();
	list.push(sprite);
	sprite.name = i.toString();
	sprite.addEventListener(MouseEvent.ROLL_OUT, overPoint);
}
function overPoint(e:MouseEvent):void 
{
		trace(e.currentTarget.name);
}

Старый 01.05.2009, 16:51
cleptoman вне форума Посмотреть профиль Отправить личное сообщение для cleptoman Найти все сообщения от cleptoman
  № 20  
Ответить с цитированием
cleptoman
 
Аватар для cleptoman

блогер
Регистрация: Mar 2007
Сообщений: 1,291
Записей в блоге: 5
Отправить сообщение для cleptoman с помощью ICQ
а почему просто экстенд не подходит то?
__________________
http://cleptoman.free-lance.ru
achivements: дважды благословлен на воровство. осеяный благодатью

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

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

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


 


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


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