PDA

Просмотр полной версии : Отправка на строку кода


Bestflashes
01.05.2007, 23:39
Можно ли заставить флэш отправится на какую-то строку кода и продолжить его выполнение с указанного места??? Например, если есть какой-то иф, и если он не выполняется, отправляемся на пару строк назад, меняем переменную, снова смотрим иф, если не подходит - снова валим назад, если подходит - идём дальше???
Заранее спасибо!!!

Kikasso
01.05.2007, 23:48
gotoAndPlay

BigDan
02.05.2007, 00:09
через

while(.....){
if(.....){
}else{
continue;
}
}

Kikasso
02.05.2007, 00:15
BigDan, и что будет?

lowka
02.05.2007, 00:22
gotoAndPlay
Вы каждую кода строчку в отдельный фрейм предлагаете вынести?

MINASTIS
02.05.2007, 00:35
Kikasso он имел ввиду аналог методу goto из Паскаля. Где ставишь где-нибудь в коде например #metka А после пишешь где-нибудь goto(metka) и он выполняет код со строки где эта метка.

Bestflashes кроме как условиями или циклами никак не сделать.
Например

if (first) {
if (second) {
// here code
}
if (third) {
// here code
}
}
Вот так и избираешь включая на true нужные переменные.
И кстати такие вот (хоть здесь и нет) методы перехода на строку вроде goto из Паскаля считаются плохой практикой программрования. Короче плохим тоном. Учись делать циклами и условиями.
Или удобно функциями, просто вызываешь нужную в нужный момент и все.

iNils
02.05.2007, 00:37
lowka, если вы хотите как в бейсике сделать goto 10, то нельзя. Но правильно как указал BigDan, надо использовать while.

Kikasso
02.05.2007, 00:37
MINASTIS, я тупанул. Я думал что надо мувик перемотать назад на несколько кадров.
BigDan извинения.
Но лучше использовать "обратную логику":
while(.....){
if(! ..... ) continue;

.....


}
Потому что скобок меньше.

MINASTIS
02.05.2007, 00:42
По моему все-таки для таких случаев были созданы функции... или я в чем-то ошибаюсь? (function)
Ими удобнее.

Kikasso
02.05.2007, 02:32
Разные задачи бывают. Например, найти ноду с нужным аттрибутом:
var node:XMLNode = my_xml.firstChild.firstChild;
while( node = node.nextSibling ){
if( node.attributes.itsMe != wantedValue ) continue;
// а вот тут ты и попалась ....
}
Еще есть словечко break, тоже помогает. К сожалению, оно не так работает, как в php, там можно сказать break(2) и выходишь из 2-х циклов, а в 3-м остаешься, удобно. В AS такого нет, насколько мне известно - выходишь из всех циклов.

iNils
02.05.2007, 02:36
Только из того цикла, в котором указан break.

Kikasso
02.05.2007, 02:54
Правда ваша. Проверить несложно.
var a = b = 10, c = 5;
while( --a>0 ) while( --b>0 ) if( --c<0 ) break;
trace(a + " " + b + " " + c );//0 -4 -4