PDA

Просмотр полной версии : If - условие не выполняеться


zinchencko
28.01.2008, 12:07
Есть следуюший код, куда бы не нажимал, все равно действие выполняется.

package {

import flash.display.Sprite;
import flash.display.MovieClip;
import flash.events.MouseEvent;

public class Main extends Sprite {
var inform:int = 1;

public function Main() {

add_btn.buttonMode = true;
del_btn.buttonMode = true;
add_btn.addEventListener(MouseEvent.CLICK, addFun);
del_btn.addEventListener(MouseEvent.CLICK, delFun);

}

public function addFun(e:MouseEvent):void {
if (inform == 1) {
addfuninit();
}

}
private function addfuninit():void {

var inform:Number = 0;
trace(inform);


}
private function delFun(e:MouseEvent):void {
if (inform == 0) {
var inform:int = 1;
trace(inform);
}
}
}
}

sqMax
28.01.2008, 14:02
А зачем ты в функциях локальные версии переменной создаешь???
Имхо, поэтому и не работает.

zinchencko
28.01.2008, 14:14
а куда надо писать локальные переменные тогда?

Ajshma
28.01.2008, 14:32
if (inform == 1) {
addfuninit();
}
Ты вызываешь addfuninit, которая должна изменять глобальную переменную inform. Но inform из addfuninit недоступно для addFun, так как ты ее создаешь локальной только для addfuninit.
Вообщем так примерно:
package {

import flash.display.Sprite;
import flash.display.MovieClip;
import flash.events.MouseEvent;

public class Main extends Sprite {
public var inform:int = 1;

public function Main() {

add_btn.buttonMode = true;
del_btn.buttonMode = true;
add_btn.addEventListener(MouseEvent.CLICK, addFun);
del_btn.addEventListener(MouseEvent.CLICK, delFun);

}

public function addFun(e:MouseEvent):void {

if (inform == 1) {
addfuninit();
}

}
private function addfuninit():void {

inform = 0;
trace(inform);


}
private function delFun(e:MouseEvent):void {
if (inform == 0) {
inform = 1;
trace(inform);
}
}
}
}

zinchencko
28.01.2008, 17:35
все равно не работает.

package {

import flash.display.Sprite;
import flash.display.MovieClip;
import flash.events.MouseEvent;

public class Main extends Sprite {
public var inform:int = 1;

public function Main() {

add_btn.buttonMode = true;
del_btn.buttonMode = true;
add_btn.addEventListener(MouseEvent.CLICK, addFun);
del_btn.addEventListener(MouseEvent.CLICK, delFun);

}

public function addFun(e:MouseEvent):void {
if (inform == 1) {
var inform:int = 0;
trace(inform);
}

}
public function delFun(e:MouseEvent):void {
if (inform == 0) {
var inform:int = 1;
trace(inform);
}
}
}
}

Ajshma
28.01.2008, 21:39
Ты издеваешься?
Внимательнее смотри, что я тебе написал.
Какого перепуга ты в каждом методе var inform:int = 1; пишешь?!
Ты ее определил уже в самом начале!
Далее надо писать - просто inform= 1;

BlooDHounD
28.01.2008, 21:48
что бы не было такого идиотизма надо всегда писать this.

zinchencko
28.01.2008, 22:28
извеняюсь за невнимательность...