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

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

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

Регистрация: Jun 2005
Сообщений: 74
По умолчанию [AS2]помогите с определением метода

Код:
	public function pl_addStat(stat:String, count:Number):Number {
		this.stat -= count;
		return this.stat;
	}
	public function pl_removeStat(stat, count):Number {
		this.stat -= count;
		return this.stat;
	}
Ошыбка:

**Error** D:\My Art\game\player.as: Line 23: There is no property with the name 'stat'.
this.stat -= count;

**Error** D:\My Art\game\player.as: Line 24: There is no property with the name 'stat'.
return this.stat;

**Error** D:\My Art\game\player.as: Line 27: There is no property with the name 'stat'.
this.stat -= count;

**Error** D:\My Art\game\player.as: Line 28: There is no property with the name 'stat'.
return this.stat;

Total ActionScript Errors: 4 Reported Errors: 4


Мне нужен метод класса который принимал бы параметры:
1й. Имя переменной.
2й. Количество.
Изменял переменную класса с именем записаным в параметре stat
И возвращал бы её.
Все просто вроде, но ругается, и это при создании объекта, функции эти я не вызываю.


Последний раз редактировалось Nirth; 20.06.2005 в 23:04.
Старый 20.06.2005, 19:45
fiza вне форума Посмотреть профиль Отправить личное сообщение для fiza Найти все сообщения от fiza
  № 2  
Ответить с цитированием
fiza
 
Аватар для fiza

Регистрация: Feb 2002
Адрес: Ростов-на-Дону
Сообщений: 56
Отправить сообщение для fiza с помощью ICQ
public function pl_addStat(stat:String, count:Number):Number {
this[stat] += count;
return this[stat];
}
public function pl_removeStat(stat:String, count:Number):Number {
this[stat] -= count;
return this[stat];
}

попробуй так

Старый 20.06.2005, 21:10
Nirth вне форума Посмотреть профиль Отправить личное сообщение для Nirth Посетить домашнюю страницу Nirth Найти все сообщения от Nirth
  № 3  
Ответить с цитированием
Nirth
4AM Games
 
Аватар для Nirth

блогер
Регистрация: Nov 2002
Адрес: Sofia
Сообщений: 6,264
Записей в блоге: 1
Отправить сообщение для Nirth с помощью ICQ Отправить сообщение для Nirth с помощью AIM Отправить сообщение для Nirth с помощью MSN Отправить сообщение для Nirth с помощью Yahoo Отправить сообщение для Nirth с помощью Skype™
создай переменную стат
Код:
var stat:Type;
__________________
Я перестал переписывать, начал редактировать, еще лет 15 и я стану писателем ^_^

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

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
Цитата:
Сообщение от Nirth
создай переменную стат
неверно: с переменной stat метод
function pl_addStat(stat:String, count:Number):Number {
this.stat -= count;
return this.stat;
}
будет ее и менять, независимо от аргумента stat..
в варианте fiza будет меняться переменная переданная строкой методу, чего и хочет автор.

Старый 20.06.2005, 22:00
Nirth вне форума Посмотреть профиль Отправить личное сообщение для Nirth Посетить домашнюю страницу Nirth Найти все сообщения от Nirth
  № 5  
Ответить с цитированием
Nirth
4AM Games
 
Аватар для Nirth

блогер
Регистрация: Nov 2002
Адрес: Sofia
Сообщений: 6,264
Записей в блоге: 1
Отправить сообщение для Nirth с помощью ICQ Отправить сообщение для Nirth с помощью AIM Отправить сообщение для Nirth с помощью MSN Отправить сообщение для Nirth с помощью Yahoo Отправить сообщение для Nirth с помощью Skype™
ой, извиняюсь и в правду глупость сказал, я просто посмотрел на this и подумал что он меняет свойство класса.

Старый 20.06.2005, 22:47
Hanzo вне форума Посмотреть профиль Отправить личное сообщение для Hanzo Найти все сообщения от Hanzo
  № 6  
Ответить с цитированием
Hanzo

Регистрация: Jun 2005
Сообщений: 74
Цитата:
Сообщение от fiza
public function pl_addStat(stat:String, count:Number):Number {
this[stat] += count;
return this[stat];
}
public function pl_removeStat(stat:String, count:Number):Number {
this[stat] -= count;
return this[stat];
}

попробуй так
Спасибо, так работает, но вот очень интересный момент.
Я перед тем как запостить пробовал такой вариант:
Код:
public function pl_addStat(stat:String, count:Number):Number {
                          stat = this[stat];
		this.stat -= count;
		return this.stat;
	}
Но он не работал, не понимаю почему.
И еще самое главное, мне надо менять свойство екземпляра(объекта) класса, а не свойство самого класса.

Старый 20.06.2005, 22:49
Nirth вне форума Посмотреть профиль Отправить личное сообщение для Nirth Посетить домашнюю страницу Nirth Найти все сообщения от Nirth
  № 7  
Ответить с цитированием
Nirth
4AM Games
 
Аватар для Nirth

блогер
Регистрация: Nov 2002
Адрес: Sofia
Сообщений: 6,264
Записей в блоге: 1
Отправить сообщение для Nirth с помощью ICQ Отправить сообщение для Nirth с помощью AIM Отправить сообщение для Nirth с помощью MSN Отправить сообщение для Nirth с помощью Yahoo Отправить сообщение для Nirth с помощью Skype™
this - это ссылка на экземпляр данного класса, а ты обращаешься к внутренней переменной метода, разные области видимости.
__________________
Я перестал переписывать, начал редактировать, еще лет 15 и я стану писателем ^_^

Старый 20.06.2005, 22:57
Hanzo вне форума Посмотреть профиль Отправить личное сообщение для Hanzo Найти все сообщения от Hanzo
  № 8  
Ответить с цитированием
Hanzo

Регистрация: Jun 2005
Сообщений: 74
Цитата:
Сообщение от Nirth
this - это ссылка на экземпляр данного класса, а ты обращаешься к внутренней переменной метода, разные области видимости.
Я думаю что понял, спасибо

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

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

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


 


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


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