Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript (http://www.flasher.ru/forum/forumdisplay.php?f=5)
-   -   Как завести глобальну переменную? (http://www.flasher.ru/forum/showthread.php?t=54961)

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

Вложений: 1
На проверь.

dims12 22.02.2004 23:51

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

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

Димс.

dims12 22.02.2004 23:52

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

Димс.

dims12 23.02.2004 02:57

Вложений: 1
Вот моя флешка. Кстати, почему она такая большая, из-за библиотеки?

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

А еще. Не понимаю, как именовать объекты? Я делаю это на вкладке 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
Скачать русский Хэлп к ней
Зайти к Дембинскому и поизучать программирование
движения/написано так, что любой чайник разберётся/
и ещё много чего... ;)

dims12 24.02.2004 04:21

Цитата:

Зайти к Дембинскому
Отличная ссылка!

dims12 24.02.2004 05:54

Ну вот, кажется, нарисовал свой мультик.


Часовой пояс GMT +4, время: 15:03.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.