Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Небольшой вопросик (http://www.flasher.ru/forum/showthread.php?t=86109)

step2006 08.10.2006 02:32

Небольшой вопросик
 
Такая ситуация. В сцене есть переменная n которая равна 0. Так же в сцене есть movie clip по окончанию которого n=1. Как получить значение переменной из movie clipа (n=1) в саму сцену. Допустим чтоб кака нибудь z в сцене была равна значению n из mc.

Bar_Duck13 08.10.2006 02:42

z = <имя клипа>.n

miramax 08.10.2006 02:45

Воообще-то это основной синтаксис современных языков программирования.

z = mc.n

в данном случае z это ссылка на объект (клип, строка, текстовое поле)
Можно создавать ссылкм и на функции, и на методы, и на другие объекты (например мувиклипы).
Например в клипе house есть клип window
Можно записять прямую ссылку на window

z = house.window
и делать с мувиклипом по ссылке что угодно
z.x = 100

Можно и так делать
a = _root.house.window.play
и вызывать метод объекта
a()
можно ещё свои методы и функции писать и вызывать

step2006 08.10.2006 02:55

Спасибо ребят. Че то я как то по сложному начал делать. сам запутался. А eval это что тогда???

miramax 08.10.2006 02:59

Функция eval конвертирует сторку в путь к объекту (ряд ссылок)
Код:

str = 'mc.n';
z = eval(str)

По этому вопросу всё в доке написано, и поиском рекомендую заняться.

Bar_Duck13 08.10.2006 03:00

Забудь этот архаизм. Eval сильно тормозит при работе.

Bar_Duck13 08.10.2006 03:20

Цитата:

Можно и так делать
a = _root.house.window.play
и вызывать метод объекта
a()
Нифига неправда!!! Зачем народ сбивать с толку??? Сначала проверяй!
Код:

//остановим
_root.mc.stop();
//не работает!!!
a = _root.mc.play;
a()
//работает
_root.mc.play();
//или так
a = _root.mc;
a.play();


miramax 08.10.2006 05:07

Цитата:

Сообщение от Bar_Duck13
Нифига неправда!!! Зачем народ сбивать с толку??? Сначала проверяй!
Код:

//остановим
_root.mc.stop();
//не работает!!!
a = _root.mc.play;
a()
//работает
_root.mc.play();
//или так
a = _root.mc;
a.play();


Для тебя такой способ оращения к функциям, видимо, тоже стало открытием.
Всё прекрасно работает.
Код:

function f()
{
        trace('call')
}
a = f;
a();

сначала ссылка на объект-функцию, а потом вызов объекта-функции по ссылке. Всё верно.

Neosano 08.10.2006 11:33

ого, не знал...

Bar_Duck13 08.10.2006 13:59

2 miramax
 
Вложений: 1
Ты используешь разные вещи тут:
Код:

a = _root.house.window.play
//и вызывать метод объекта
a()

и тут:
Код:

function f()
{
        trace('call')
}
a = f;
a();

Второй способ я постоянно использую. Это давно для меня не открытие. Запусти пример и убедись, что ты не прав.


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

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