PDA

Просмотр полной версии : Как завести глобальну переменную?


dims12
20.02.2004, 18:31
Создал в первом кадре анимации такой скрипт

_global.YellowPhase = 10;
tellTarget ("Желтый") {
gotoAndStop (_global.YellowPhase);
}


А он не работает: подчиненный клип "Желтый" продолжает крутиться, не слушает команды.

А вот такой код работает правильно:

tellTarget ("Желтый") {
gotoAndStop (10);
}

Почему? Вроде бы в книжке написано, что для заведения переменных достаточно им чего-нибудь присвоить. А глобальные переменные - это переменные, начинающиеся с _global.

Я что-то напутал?

Димс.

Jlekc
20.02.2004, 18:44
c _global все должно работать проверь еще раз, свою запись!!

Штрек
20.02.2004, 19:00
_global.YellowPhase = 10;
tellTarget ("yellow") {
gotoAndStop (_global.YellowPhase);
}
Всё работает!
Ты б инстанс ещё по китайски обозначил. :rolleyes:

Штрек
20.02.2004, 19:03
На проверь.

dims12
22.02.2004, 23:51
Штрек, может у меня флэш какой-старый? Потому что твой файл не открывается.

У меня версия 5.0
Это что, уже динозавр, да?

Димс.

dims12
22.02.2004, 23:52
А что значит "назвал по-китайски"? Это моя фраза, я так обычно критикую англоязычие. Что, во флэше можно русские имена использовать, да? На переносимости это никак не скажется?

Димс.

dims12
23.02.2004, 02:57
Вот моя флешка. Кстати, почему она такая большая, из-за библиотеки?

Я сделал сначала объект-машинку, вложил его в объект "движущаяся машинка" и уже его положил на линейку. Это идиотизм или так правильно делать?

А еще. Не понимаю, как именовать объекты? Я делаю это на вкладке Instance/Name, но видел в примерах, что это поле пустое, а имя у бъекта все равно есть. Как это получается?

Пушистик
23.02.2004, 09:32
Оригинал написал(а) dims12
Штрек, может у меня флэш какой-старый? Потому что твой файл не открывается.

У меня версия 5.0


:D :D :D

Что, во флэше можно русские имена использовать, да?
НЕТ

dims12
23.02.2004, 18:07
Пушистик, ты чего сказал-то?

dims12
23.02.2004, 18:12
Назвал переменную по-английски, получился код

_global.YellowPhase = 10;
tellTarget ("YellowCarMoving") {
gotoAndStop (_global.YellowPhase);
}

который все равно не работает.

А код

tellTarget ("YellowCarMoving") {
gotoAndStop (10);
}

работает.

То есть дело не в русском наименовании. Что, кстати, было очевидно, так как если бы дело было бы в нем, то не работали бы оба кода.

Ребята, я понимаю, что проще загадочно посмеяться, но по делу-то есть идеи?

Димс.

silin
23.02.2004, 18:29
_global object
Availability
Flash Player 6.
интересно по простому чем не устраивает
YellowPhase = 10;
tellTarget ("YellowCarMoving") {
gotoAndStop (_parent.YellowPhase);
}

Штрек
23.02.2004, 19:04
В моём исходнике всё работает /переменная читается/.
Скоро 8ка выйдет, а ты всё 5ку сношаешь. :rolleyes:

dims12
23.02.2004, 19:18
silin, ты - гений! :-)

Действительно, я не мог сообразить, что глобальности тут и не нужно - рефлексов пока нет :-)

Кроме того, я заметил, что _parent синеет, а _global - нет. То есть, все прояснилсь, дело в версии Flash, в пятой версии никакого _global просто нет.

silin, а откуда ты цитату взял? Это хелп такой в более новом Flash-е?

И еще вопрос: а кто, собственно, прокручивает флэшки в браузере? Не будет ли правильнее (переносимее) писать флэшки в старой программе?

Штрек
23.02.2004, 19:23
Общение с тобой - укорачивает жизнь. :rolleyes:

silin
23.02.2004, 19:35
не верь Штреку( он добрый на самом деле) и ставь MX

dims12
23.02.2004, 19:35
Ну вот! Опять затык!

Извините, что мы к вам обращаемся, сами мы не местные...

В общем, я хочу сам управлять движением.

Я рассчитывал, что помещу в первый кадр код

YellowPhase++;
tellTarget ( YellowCarMoving ) {
gotoAndStop(_parent.YellowPhase);
}

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

Ни фига! Теперь желтая машинка стоИт!

Делаю так:

YellowPhase++;
tellTarget ( YellowCarMoving ) {
gotoAndStop(_parent.YellowPhase);
}
gotoAndPlay(1);

рассчитывая, что теперь зацикливание явно - все равно стоИт.

Делаю

while(1) {
YellowPhase++;
tellTarget ( YellowCarMoving ) {
gotoAndStop(_parent.YellowPhase);
}
}

зависает, что логично...

И главное, в книжке всего этого не написано, объясняются вские элементарные понятия, а что к чему - не объясняется...

Штрек
23.02.2004, 20:21
Оригинал написал(а) dims12
Ну вот! Опять затык!
В общем, я хочу сам управлять движением.

Ставь 6ку - поуправляем. :p

silin
23.02.2004, 20:43
и код первого кадра будет выполняться многократно
добавь второй кадр(пустой) и все поедет, gotoAndPlay(1) не нужен- само пойдет
( в 6-ке можно без этого обойтись)

dims12
24.02.2004, 01:24
добавь второй кадр(пустой) и все поедет

Точно! Пошло! А почему так? :-)

Штрек
24.02.2004, 02:38
Оригинал написал(а) dims12

Точно! Пошло! А почему так? :-)
Это ОСНОВЫ!!!
Не зная основ, да ещё на старушке-проге нельзя
достичь путёвого результата.
За то время, что тут лялякаем можно было:
Скачать и зарегить прогу Flash MX
Скачать русский Хэлп к ней
Зайти к Дембинскому (http://dembicki.narod.ru/tutor/) и поизучать программирование
движения/написано так, что любой чайник разберётся/
и ещё много чего... ;)

dims12
24.02.2004, 04:21
Зайти к Дембинскому (http://dembicki.narod.ru/tutor/)


Отличная ссылка!

dims12
24.02.2004, 05:54
Ну вот, кажется, нарисовал свой мультик (http://relativity.h11.ru/media02.shtml#cars).