PDA

Просмотр полной версии : как задать условие в зависимости от цвета объекта


Smirnoff
12.08.2005, 14:16
Вопрос похоже опять простой и тем не менее :
нужно чтоб в зависимости от цвета объекта (мувика) движение другого мувика при нажатии на кнопку или запускалось или не запускалось ..
пробывал что-то типа

on (release) {
if object1.color=RGB(0xff0000)
object2.play()
if object1.color=RGB(0x00ff00)
object2.stop()
}

но ничего пока не получилось ...
Не зависимо от цвета первого объекта второй не двигается
Не подскажите где копать ?

iNils
12.08.2005, 14:17
trace(object1.color)

iNils
12.08.2005, 14:19
Далее сравнение не =, а ==

И пришли результат trace

Smirnoff
12.08.2005, 14:26
Далее сравнение не =, а ==

И пришли результат trace
результат - undefinded
про == в курсе ..
и кстати как точно пишеться значение цвета в RGB ?
в кавычках и со скобками ?

iNils
12.08.2005, 14:38
А теперь попробуй так:

myColor = new Color (object1);
trace (myColor.getRGB ());
myColor.setRGB(0xff0000)
trace (myColor.getRGB ());

и заметь цвет объекта можно определить, если он был ранее задан программно.

и еще сравнивая цвет объекта с каким то значение не надо писать ==RGB(0xff0000). пиши просто ==0xff0000

Smirnoff
12.08.2005, 14:39
немного поясню ситуацию чтоб народ не матерился:
мне нужно сегодня до вечера доделать выполнение этого условия, а в справочниках рыться время и возможность появится только завтра так что выручите плииз ..
ПЭ.СЭ. И еще вопрос - как для строчки

on (release) {
object2.play()
}

задать условие чтоб мувик проигрался при нажатии кнопки только один раз ?

iNils
12.08.2005, 14:47
мне нужно сегодня до вечера доделать выполнение этого условия, а в справочниках рыться время и возможность появится только завтра так что выручите плииз ..

цвет мувика как задаешь?

on (release) {
object2.play()
}
задать условие чтоб мувик проигрался при нажатии кнопки только один раз
Уточни, так как есть две трактовки твоего вопроса.
1. нужно чтобы после проигрывания мувик не циклился
2. нужно что бы после нажатия на кнопку, повторно скрипт на ней больше срабатывал

Smirnoff
12.08.2005, 14:51
1. нужно чтобы после проигрывания мувик не циклился

iNils
12.08.2005, 14:52
1. нужно чтобы после проигрывания мувик не циклился
в мувике, в последней кадре напиши stop();

Smirnoff
12.08.2005, 15:21
С мувиком помогло, спасибо ..
А вот с цветами ничего не выходит.
У меня сначала кнопкой задается цвет объекта:

on (release) {
objectColor = new Color(object_1);
objectColor.setRGB(0xff0000);

а потом при нажатии на другую кнопку проверяется условие:

on (release) {
trace(object_1.objectColor);
object_2.play();
if (object_1.objectColor == "RGB(0xff0000)") {
object_2.stop();

Так вот trace выводит undefined и object_2 движется в любом случае.
Где ошибка ??

iNils
12.08.2005, 15:27
не надо писать object_1.objectColor
objectColor является экземпляром объекта Color для данного мувиклипа (делается вот этой строчкой objectColor = new Color(object_1);)
теперь для изменения цвета мувиклипа object_1 тебе надо просто обратиться к objectColor

В целом код такой:

on (release) {
if (objectColor.getRGB()==0xff0000) {
object2.play();
} else if (objectColor.getRGB()==0x00ff00) {
object2.stop();
}
}

Smirnoff
12.08.2005, 15:38
и еще :
есть ли параметр для play() чтоб воспроизводить ролик наоборот ?
типа revrrse ?

unlexx
12.08.2005, 16:28
нету такой функции это пишется вручную, набери в поиске

Stefan_
12.08.2005, 17:16
Юзай такой трейс, и все будет ок.
trace(objectColor.getRGB());

Smirnoff
12.08.2005, 17:53
Как я хотел все вроде заработало, благодарю ..

Но теперь нужно сделать, чтоб выполнялось три условия:

1. если цвет 1-го объекта равен 0x00ff00, то объекту 3 можно двигаться
3. если цвет 1-го объекта не равен 0x00ff00, то объекту 3 нельзя двигаться
2. если цвет 2-го объекта равен 0xff0000, то объекту 3 нельзя двигаться

Пробывал так:

При загрузке клипа цвет обоих объектов серый (0х777777), т.е. это начальный цвет обоих объектов.

Цвет 1-го задавал так:

on (release) {
objectColor_1 = new Color(object_1);
objectColor_1.setRGB(0x00ff00);_
}

Цвет 2-го задавал так:

on (release) {
objectcolor_2 = new Color(object_2);
objectcolor_2.setRGB(0xff0000);
}

Условие:

on (release) {
if (objectColor_1.getRGB() != 0x00ff00) {
object2.stop();
} else if (objectColor_1.getRGB() == 0x00ff00) {
object2.play();
} else if (objectColor_2.getRGB() == 0xff0000) {
object2.stop();
}
}


Так объект 2 не двигается вообще, вне зависимости от условий ..
Где опять что просмотрел ?

iNils
12.08.2005, 18:00
on (release) {
if (objectColor_1.getRGB() != 0x00ff00) {
object2.stop();
} else if (objectColor_1.getRGB() == 0x00ff00) {
object2.play();
} else if (objectColor_2.getRGB() == 0xff0000) {
object2.stop();
}
}
дай лучше исходник :)