[phpBB Debug] PHP Warning: in file /includes/bbcode.php on line 112: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file /includes/bbcode.php on line 112: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file /includes/functions.php on line 4770: Cannot modify header information - headers already sent by (output started at /includes/functions.php:3884)
[phpBB Debug] PHP Warning: in file /includes/functions.php on line 4772: Cannot modify header information - headers already sent by (output started at /includes/functions.php:3884)
[phpBB Debug] PHP Warning: in file /includes/functions.php on line 4773: Cannot modify header information - headers already sent by (output started at /includes/functions.php:3884)
[phpBB Debug] PHP Warning: in file /includes/functions.php on line 4774: Cannot modify header information - headers already sent by (output started at /includes/functions.php:3884)
Forum eduweb.pl • Wyświetl temat - Zasięg zmiennej
Strona 1 z 1

Zasięg zmiennej

Post: 27 lis 2011, o 16:52
autor: prowizjoner
Witam
Mam taki problem
Umieściłem na scenie movieclipa w 1 warstwie i w dwóch kolejnych warstwach dwa przyciski P_btn i L_btn.
Chcę, żeby klikanie przycisków powodowało zwiększanie lub zmniejszanie zmiennej "i".
W warstwie akcja zadeklarowałem zmienną i =0;
Teraz chcę poprzez kliknięcie P_btn zwiększać "i" o 1, a poprzez kliknięcie L_btn zmniejszać "i" o 1.
Zmieniająca się wartość "i" ma sterować odpowiednio zachowaniem się movieclipa.
Napisałem taki kod

var i:uint=0;
P_btn.addEventListener(MouseEvent.CLICK, zwieksz);
function zwieksz {
i++;
}
L_btn.addEventListener(MouseEvent.CLICK, zmniejsz);
function zmniejsz {
i--;
}
I zauważyłem, że "i" poza funkcjami zmniejsz i zwiększ ma ciągle wartość 0.
Jeżeli umieszczę instrukcję trace(i); wewnątrz którejś z tych funkcji to mi pokazuje prawdziwe zmiany "i", natomiast jak umieszczę trace(i) poza funkcjami, to wartośc "i" jest ciągle równa 0.
Co zrobić, żeby miało zasięg poza funkcjami zmniejsz i zwiększ.
Próbowałem umieścić wewnątrz każdej funkcji return(i), ale program pokazywał mi błędy.
Proszę o pomoc. Z góry dziekuję

Re: Zasięg zmiennej

Post: 28 lis 2011, o 15:50
autor: zchrobot

Re: Zasięg zmiennej

Post: 28 lis 2011, o 18:02
autor: prowizjoner
Przepraszam, pomyliłem się.
Rzeczywiście mam w obu funkcjach zwieksz i zmniejsz zapis
function (.....):void {i++; albo i---;}
Popełniłem błąd w przepisywaniu przykładu na forum.
Ale fakt jest faktem, przy tych zapisach zmienna "i" nadąża za zmianami wywołanymi klikaniem na buttony tylko wewnątrz funkcji, a chciałbym wiedzieć jak to obejść, żeby była ona widoczna poza tymi funkcjami i żeby jej wartość była taka sama dla każdej z tych funkcji, tzn. jeżeli doprowadziłem klikając na P_btn do jej wzrostu do np. 4, to żeby teraz zmniejszanie tej zmiennej przyciskiem L_btn powodowało jej zmniejszanie od tej własnie wartości.
Obecnie przy moich zapisach tak się dzieje i rzeczywista wartośc "i" jest wzajemnie przekazywana ale tylko wewnątrz tych funkcji.
Natomiast na zewnątrz ciągle równa się "0".
Czy jest na to prosty sposób?

Re: Zasięg zmiennej

Post: 28 lis 2011, o 20:33
autor: zchrobot