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

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

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

блогер
Регистрация: Apr 2008
Адрес: SPb
Сообщений: 3,718
Записей в блоге: 5
Отправить сообщение для dark256 с помощью ICQ Отправить сообщение для dark256 с помощью Skype™
По умолчанию Области видимости переменных

Что-то я почему-то не пойму, что я не так делаю:

Код AS1/AS2:
var TX = 1
 
function RECALC( ARG )
{
	trace( ARG )
	ARG = 100
	trace( ARG )
}
 
RECALC( TX )
 
trace( TX )
Получаем:
1
100
1

Как мне получить
1
100
100

???
__________________
FLASHER.MAP SOUNDSTAGE / CS3 / AS2

Старый 31.12.2010, 18:53
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 2  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
Простые типы передаются по значению, а не по ссылке.

Можно как-нибудь так попробовать.
Код AS1/AS2:
var TX = 1
 
function RECALC( ARG )
{
	trace( ARG )
	ARG.TX = 100
	trace( ARG )
}
 
RECALC( this )
 
trace( TX )
Код AS1/AS2:
var TX = 1
 
function RECALC( ARG ):Number
{
	trace( ARG )
	ARG = 100
	trace( ARG )
	return ARG;
}
 
TX = RECALC( TX )
 
trace( TX )


Последний раз редактировалось udaaff; 31.12.2010 в 18:55.
Старый 31.12.2010, 18:55
dark256 вне форума Посмотреть профиль Отправить личное сообщение для dark256 Посетить домашнюю страницу dark256 Найти все сообщения от dark256
  № 3  
Ответить с цитированием
dark256
 
Аватар для dark256

блогер
Регистрация: Apr 2008
Адрес: SPb
Сообщений: 3,718
Записей в блоге: 5
Отправить сообщение для dark256 с помощью ICQ Отправить сообщение для dark256 с помощью Skype™
Код AS1/AS2:
var TX:Object = new Object()
TX.field = 1
 
function RECALC( ARG )
{
	trace( ARG )
	ARG = 100
	trace( ARG )
}
 
RECALC( TX.field )
 
trace( TX.field )
1-100-1

Вроде уже не простой тип А КАК же правильно написать-то код?
__________________
FLASHER.MAP SOUNDSTAGE / CS3 / AS2

Старый 31.12.2010, 18:57
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 4  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
Код AS1/AS2:
var TX:Object = new Object()
TX.field = 1
 
function RECALC( ARG )
{
	trace( ARG )
	ARG.field = 100
	trace( ARG )
}
 
RECALC( TX )
 
trace( TX.field )

Старый 31.12.2010, 19:00
dark256 вне форума Посмотреть профиль Отправить личное сообщение для dark256 Посетить домашнюю страницу dark256 Найти все сообщения от dark256
  № 5  
Ответить с цитированием
dark256
 
Аватар для dark256

блогер
Регистрация: Apr 2008
Адрес: SPb
Сообщений: 3,718
Записей в блоге: 5
Отправить сообщение для dark256 с помощью ICQ Отправить сообщение для dark256 с помощью Skype™
Немножко не то что надо. Функций должна пересчитывать произвольное поле в произвольном объекте.
То есть рабоатет вот такое:

Код AS1/AS2:
var TX:Object = new Object()
TX.field = 1
 
function RECALC( ARG ){
	TX[ARG] = 100
}
 
RECALC( "field" )
 
trace( TX.field )
Но тогда вопрос, как передать еще и имя объекта, то есть "TX" ?
__________________
FLASHER.MAP SOUNDSTAGE / CS3 / AS2

Старый 31.12.2010, 19:01
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 6  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
Передавайте не имя, а ссылку на сам объект.

Старый 31.12.2010, 19:02
dark256 вне форума Посмотреть профиль Отправить личное сообщение для dark256 Посетить домашнюю страницу dark256 Найти все сообщения от dark256
  № 7  
Ответить с цитированием
dark256
 
Аватар для dark256

блогер
Регистрация: Apr 2008
Адрес: SPb
Сообщений: 3,718
Записей в блоге: 5
Отправить сообщение для dark256 с помощью ICQ Отправить сообщение для dark256 с помощью Skype™
Аммм.... а кусочком кода проиллюстрировать? Я что-то совсем запутался уже
__________________
FLASHER.MAP SOUNDSTAGE / CS3 / AS2

Старый 31.12.2010, 19:03
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 8  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
Код AS1/AS2:
var TX:Object = new Object()
TX.field = 1
 
function RECALC(object:Object, ARG:String ){
	object[ARG] = 100
}
 
RECALC( TX, "field" )
 
trace( TX.field )

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

блогер
Регистрация: Apr 2008
Адрес: SPb
Сообщений: 3,718
Записей в блоге: 5
Отправить сообщение для dark256 с помощью ICQ Отправить сообщение для dark256 с помощью Skype™
Ага! Во. Да. Хм.... Но как-то несколько коряво, нет?
То есть я не в коем случае не критикую, но как-то оно некрасиво выглядит... хм?
Это нормальная практика имено ТАК работать?
Уже просто теоретически интересно
__________________
FLASHER.MAP SOUNDSTAGE / CS3 / AS2

Старый 31.12.2010, 19:11
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 10  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
Цитата:
Функций должна пересчитывать произвольное поле в произвольном объекте.
Вполне соответствует условию.
Других нормальных способов не знаю.

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

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

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


 


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


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