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

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

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

Регистрация: Jul 2007
Сообщений: 25
По умолчанию параметр-переменная в AS. как?

Здравствуйте. Как сделать так, чтобы функция меняла значения параметров?
Типа:
Код:
function AssignTo5(x:Number){
    x=5;
}
var i:Number=0;
AssignTo5(i);
но, конечно, такой вариант не прокатывает: он изменяет только x внутри функции, но не i.


Последний раз редактировалось iNils; 08.07.2007 в 16:42.
Старый 08.07.2007, 16:29
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 2  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Pasha L, отредактируйте свой пост и оформите код тегами [code][/code].

Старый 08.07.2007, 16:43
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 3  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,884
Записей в блоге: 7
Вот так
Код:
var i:Number=0;
i = 5;
__________________
(и)Нильс.ru | Плагины для FlashDevelop

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

Регистрация: Jul 2007
Сообщений: 25
__etc, похоже, это сделал уже кто-то за меня .
iNils, ясное дело, что и так можно в данном случае. Но это я просто привел самый простой пример. Меня интересует именно изменение из функции.

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

Регистрация: May 2006
Адрес: Москва
Сообщений: 2,978
Отправить сообщение для DarkLight с помощью ICQ Отправить сообщение для DarkLight с помощью Skype™
надо чтобы параметр передавался по ссылке(во флеше это объекты, массивы). Соответственно передать в ф-ю ссылку на объект и менять его свойства
__________________
4am is time to rock

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

Регистрация: Oct 2006
Адрес: spb.ru
Сообщений: 3,221
1)Можно просто вернуть параметр.
Код:
function f(x){
return x*5;
}
x = 5;
trace(x);
x = f(x);
trace(x);
2)Если передать параметром любой объект, то будет изменет сам объект.
Код:
var arr:Array = [1,2,3];
function f(o){
o[1] = 22;
}
trace(arr);
f(arr);
trace(arr);

Старый 08.07.2007, 19:23
Pasha L вне форума Посмотреть профиль Отправить личное сообщение для Pasha L Найти все сообщения от Pasha L
  № 7  
Ответить с цитированием
Pasha L

Регистрация: Jul 2007
Сообщений: 25
Про обычный возврат мне известно Но, бывает, одним им не обойдешься...

Про объекты понятно. Но неужели нужно для этого создавать свой собственный класс? или даже массив делать?

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

Регистрация: Oct 2006
Адрес: spb.ru
Сообщений: 3,221
Любой объект передается по ссылке.

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

Регистрация: Sep 2002
Сообщений: 30,787
Числа, строки и булевы значения к таким объектам не относятся.

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

Регистрация: Oct 2006
Адрес: spb.ru
Сообщений: 3,221
Литералы не относятся, а объекты вполне относятся:
Код:
function f(o){
o['x'] = 22;
}
o = false;
trace(o['x']); //undefined
f(o);
trace(o['x']); //undefined
o = new Boolean(true);
trace(o['x']); //undefined
f(o);
trace(o['x']); //22
..код только для примера, так писать ессно не надо..

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

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

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


 


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


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