![]() |
Как правильно задать имя кадра
Вложений: 1
Привет.
Вобщем вопрос из начальной школы, но ввел меня в ступор. Есть мувик - например 20 кадров. Десятый кадр - key Frame - даю ему название в панели properties. Потом пишу Код:
if (mc._currentframe == "название_кадра"){ |
А Вы, простите, на чьей шкале пишите?
|
А в примере разве не видно? На _root. Или в классе. Один результат - не работает.
|
На шкале кадров. То есть мы задаем имя кадра и можем воспользоваться
Код:
gotoAndStop("myFrameName");Что могу сказать про _currentframe - он имеет тип Number, то есть он никогда не станет равен строки. Скорее всего (я не уверен, надо покопаться) эти флажки нужны лишь для gotoAndStop&gotoAndPlay для глупых дизайнеров (я не говорю что все дизайнеры глупые), не понимающих в программинге. Как вариант: заводим массив, туда пишем имена кадров. Скажем 5 кадр обзовем вася, 241 петя. Код:
var a:Array=new Array(); |
Мдааа. Я почему то был уверен, что _currentframe может принимать строку (странно, почему компилятор не ругается). Буду делать с массивом. Спс, Psycho Tiger.
Upd.: а, нет, с массивом не получится - какой смыл от него. Мне нужно было дать метку кадру для того, чтобы потом добавлять или удалять кадры, не трогая код. |
Хм... я тут подумал и придумал адский код для извращенцев (tm, (c) Psycho Tiger).
Смотри (не впади в истерику), вот алгоритм: 1) Запоминаем текущий кадр 2) делаем gotoAndStop("метка кадра") 3) сравниваем, поменялся ли _currentframe 4) делаем gotoAndStop(на тот кадр что в 1 пункте) Ага! Теперь мы знаем. на том ли кадре с меткой мы находимся XD UPD: про компилятор не ругается - ас2 добрый, пока критическую ошибку не найдет, ругаться не будет. про принимать строку: как ты себе представляешь, что одна переменная может принимать аж 2 значения? |
Цитата:
:-) Алгоритм действительно ацкий. И так как "tm, (c) Psycho Tiger", то не буду применять, а то еще в суд подашь. |
Нет нет нет, ты не прав.
gotoAndStop() - метод, у него в скобки идет аргумент - переменная динамическая. И что там флэш с ней делает - непонятно... скорее всего смотрит на тип и делает ветвление. _currentframe - это свойство (если был бы метод были бы скобки). Свойство - фактически переменная (терминлогия, блин... функции, методы, свойства, переменные... ух) - 2 значения принимать не может. В суд не подам, это опенсурс проект, можете использовать даже без ссылки на автора =) |
Считать метку кадра (строковую) можно в AS3. (одно из немногих преимуществ, которое почему-то адобовцы "забыли" добавить к AVM1)
|
Ага, почитал. currentLabel называется. Удобная штука, этот AS3.0.
|
| Часовой пояс GMT +4, время: 20:07. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.