Изпратете запитване:
Полетата маркирани със звезда (*) са задължителни за попълване.

Notice: Undefined variable: captionHeight in /home/bestweb/public_html/modules/mod_vt_nivo_slider/helper.php on line 55
Vinaora Nivo SliderVinaora Nivo SliderVinaora Nivo Slider
1 1 1 1 1 1 1 1 1 1 Rating 0.00 (0 Votes)

В ActionScript променливите, създавани вътре във функцията, се наричат локални променливи (local variable). Това означава, че целиятостанал код, намиращ се извън тази функция, НЕ може да чете значенията на тези променливи или да се обръща към тях. Променливите, създавани извън функциите, се наричат глобални променливи (global variable). Към тях можете да се обръщата от всяко място в кода - както вътре във функции, така и извън тях.

Но се смята за лоша практика, когато функцията се управлява от променливи, които се намират извън нея. Много бързо можеш да се объркаш в кой момент промеливата ще се измени и какво е крайното й значение. Функциите трябва да бъдат относително независими от кода в който се извикват. С други думи, функциите е най-добре да работят със свои собствени данни.

Обаче, понякога възникват и такива ситуации, когато функцията трябва да се управлява от от променливи, които са извън нея. В такъв случай вие трябва да предадете променливата на функцията под формата на параметър или аргумент. Предаването на параметри на функцията се извършва в кръгли скоби, които следват веднага след името на функцията. След като бъдат поставени в кръглите скобки, аргументите се използват в качеството на променливи вътре във функцията. Освен това вие трябва да декларирате и типа на данните за всеки предаван на функцията аргумент. В случай на неправилно въведен тип на данните, скрипта ще върне грешка. 

Извиквайки функцията, вие трябва да направите предаване на параметрите, записвайки ги в кръглите скобки, веднага след името на функцията. Те могат да бъдат както значения в чист вид (55, "книга", true и т.н.), така и променливи и екземпляри на символи, в зависимост от това какви типове данни може да приема функцията.

Предаване на параметър на функция

Оворете панела Actions.

Наберите следното:

function addNums(numToAdd1:Number, numToAdd2:Number)
{ var num1:Number = numToAdd1; var num2:Number = numToAdd2; var sum:Number = num1 + num2; trace(sum);
} var firstNum:Number = 10; var secondNum:Number = 32; addNums(firstNum, secondNum);

firstNum и secondNum са аргументите, които се предават. Т. е. когато извиквате функцията addNums с тези параметри (firstNum, secondNum), вие все едно присвоявате на numToAdd1 стойността на firstNum (10), а на numToAdd2 - стойността на secondNum (32).

В редактора на кода в панела Actions трябва да получите следното:

arguments-to-function

Натиснете Ctrl + Enter. В прозореца  Output ще се появи резултатът от работата на функцията.

arguments-to-function-output

Допълнителна информация

Обикновено, при предаване на параметрите на функция, те се записват в този порядък, в който ще следват в тялото на функцията. В примера ние видяхме, че firstNum се предава на функцията като numToAdd1, а secondNum като numToAdd2. Но е напълно възможно аргумета да се предава и по следния начин:

addNums(numToAdd1 = firstNum, numToAdd2 = secondNum);

Освен това на функцията могат да се предават и аргументи, които да са опционални, т. е. незадължителни., например:

function addNums(numToAdd1:Number, numToAdd2:Number, 
numToAdd3:Number = 0)

В този случай ще се използва това значение на аргумента, което е по премълчаване, ако не е предадено друго значение. Такива аргументи винаги се записват след задължителните, на които не се присвоява стойност по премълчаване.

Пробвайте следните два кода:

Първи код:

function addNums(numToAdd1:Number, numToAdd2:Number, numToAdd3:Number = 0)
{ var num1:Number = numToAdd1; var num2:Number = numToAdd2;
var num3:Number = numToAdd3; var sum:Number = num1 + num2 + num3; trace(sum);
} var firstNum:Number = 10; var secondNum:Number = 32;
var thirdNum:Number = 10; addNums(firstNum, secondNum);

Втори код:

function addNums(numToAdd1:Number, numToAdd2:Number, numToAdd3:Number = 0)
{ var num1:Number = numToAdd1; var num2:Number = numToAdd2;
var num3:Number = numToAdd3; var sum:Number = num1 + num2 + num3; trace(sum);
} var firstNum:Number = 10; var secondNum:Number = 32;
var thirdNum:Number = 10; addNums(firstNum, secondNum, thirdNum);

Единствената разлика е, че вторият предава три аргумента.

 

Имате въпрос?

Потърсете отговор в нашите
Често Задавани Въпроси
или се свържете с нас

phone 0878 679 639
mail Пишете ни
skype AртСторм