PDA

Просмотр полной версии : как передать значение из функции?


3dmax
22.08.2005, 16:51
насколько я понял из функции нельзя передать значение переменной.
тоесть за пределами функции переменной просто не видно. :(
но неужели никто не сталкивался с этой проблемой, когда надо, хоть как-то, передать значение переменной из функции программе?

iNils
22.08.2005, 16:55
fun = function (a) {
var b = a * a;
return b;
}
trace(fun (5));

3dmax
22.08.2005, 17:41
fun = function (a) {
var b = a * a;
return b;
}
trace(fun (5));
О это мне помогло.Только вот, что-то я не пойму функцию что можно вызывать только 1 раз?
Например :
onEnterFrame = function() {
b=15;
delete onEnterFrame;
return b
};
a=onEnterFrame(b);
trace("a="+a)
c=onEnterFrame(b);
trace("c="+c)

Пишет :
a=15
c=undefined
:confused:

KidsKilla
22.08.2005, 18:16
onEnterFrame = function() {
b=15;
delete onEnterFrame;
return b
};

те чего надо-то?

3dmax
22.08.2005, 18:33
читай внимательнее я спросил почему функция 2 раза не вызывается?

iNils
22.08.2005, 18:44
onEnterFrame = function() {
b=15;
delete onEnterFrame;
return b
};
a=onEnterFrame(b);
trace("a="+a)
c=onEnterFrame(b);
trace("c="+c)

1. onEnterFrame это функция обработчик события, ее не надо вызывать, она сама по себе работает если. используй другой имя для функции
2. delete onEnterFrame; после первого обращения к функции этой строкой ты эту функцию убиваешь, поэтому во второй раз она уже сработает.
3. вызвая функцию таким образом onEnterFrame(b); ты передаешь ей параметр b, но описывая саму функцию как onEnterFrame = function() ты это параметр в нее не вставляешь (можно конечно использовать arguments[] но это отдельная песня), и функция у тебя возвращает только то что в ней само описано. поэтому мужно ее вызываеть без b, а просто onEnterFrame();

СМЕНИ ИМЯ ФУНКЦИИ

3dmax
22.08.2005, 18:49
спасибо, я было сам догадался че она 2-й раз не вызывается.
а имя функции я выбрал специально, т.к. моя прога читает переменные из файла а эта функция помогает,чтобы они прочлись.
ну вобщем там много чего.
еще раз спасибо.