PDA

Просмотр полной версии : Условия снаружи и внутри


fisherman
05.04.2008, 11:21
Собственно, имеем простенький код в глобалке

var a:String;
var b:String;
a="f";
b="f";
mc_1.onPress = function() {
if(a=="f") {
a=this._name;
}
else {
if(b=="f") {
b=this._name;
}
}
trace("I'm = "+this._name);
trace(""+a);
trace(""+b);
};

Все работает, выдает все как задумано.
Вырезаем все, что происходит на событие нажатия, т.е. со строки 5 и до конца (включительно). Вставляем оное в клип mc_1(в первый кадр, да собственно у нас клип - это квадратик, там более кадров то и нет), меняем в коде mc_1 на this.
Выдает "undefined" в последних двух trace'ах.
Закоментировав все строки с условием и оставив только присвоение и показ, видим, что программа выдает то, что от нее хотят (присваивает - показывает). Значит, дело в условиях, я правильно понимаю? :umnik2:

Вобщем, что за :rtfm: (происходит) и как с этим бороться?

qazwsx
05.04.2008, 11:57
Все работает правильно выдает:
I'm = instance1
instance1
f
p.s а почему бы не написать
var a:String = "f";
var b:String = "f";
?
p.p.s У тебя условия всегда истина >_>

fisherman
05.04.2008, 13:26
Сорри, глупый вопрос. Просто при помещении в клип код нужно еще и подправить с помощью _root. , так как переменные в глобале объявлены.
Разобрался.