Unexpected Button behaviour

sometimes flash amazes me, ****ing bugs or something. Last time it was a weird button bug, buttons wouldnt work for some unknown reason. Now it is this.


trace ("empty: " + empty)
trace ("oilTarget: " + oilTarget);
                if (empty && oilTarget == undefined);
                    {
trace ("check for nearest oil because, empty == true, oilTarget == undefined");
trace ("empty: " + empty)
trace ("oilTarget: " + oilTarget);

traces (output):


empty: true
oilTarget: undefined
check for nearest oil because, empty == true, oilTarget == undefined
empty: true
oilTarget: undefined
empty: true
oilTarget: 1
check for nearest oil because, empty == true, oilTarget == undefined
empty: true
oilTarget: 1

Obviously that shouldnt happen. It should only seek for the nearest oil when oilTarget is not defined. However, if it is defined it still passes the if statement.

oilTarget = 1
if (oilTarget == undefined)
passes.

However when i test this out in a single fla it will work exactly as it is supposed to.


oilTarget = undefined;
myVar = true;
if (myVar && oilTarget == undefined)
    {
    trace ("oilTarget == undefined");
    }
    

traces (output)


oilTarget == undefined

Can anyone explain please?