Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 31.08.2012, 15:09
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 11  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Цитата:
3) как из класса соответствующего символу влиять на то, что творится на таймлайне данного символа. Опять же просьба привести код.
С этим как раз все сложно)) Грубо говоря, у каждого кадра таймлайна своя область видимости. Она может совпадать с предыдущими/последующими кадрами, а может не совпадать. Область видимости задает "ключевой" кадр. То есть, если у Вас на таймлайне третий кадр ключевой и в нем впервые появляется некий объект, то для кода в первом (всегда ключевом) кадре об этом объекте ничего не известно. А строго говоря, таймлайн сам по себе существует именно для того, чтобы управлять "тем что происходит", но не кодом а "руками". Программисты стараются вообще не использовать мувиКлип, насколько это возможно. По сути, он нужен только для рисованной анимации, никакого другого смысла в нем нет. Это как гиф-анимация, только векторная. Можно переходить по кадрам, останавливаться на кадрах, проигрывать с любого кадра. Но располагать на отдельных кадрах самостоятельный код — это очень плохо. Такая возможность есть, но она оставлена для мультипликаторов, чтобы писать несложные самостоятельные скрипты для управления навигацией или визуальными эффектами. Для более-менее серьезного программирования о ней лучше просто забыть.
__________________
Reality.getBounds(this);

Старый 31.08.2012, 20:40
Feareles вне форума Посмотреть профиль Отправить личное сообщение для Feareles Найти все сообщения от Feareles
  № 12  
Ответить с цитированием
Feareles

Регистрация: Aug 2012
Сообщений: 10
ок с этим понятно.
Ещё вопрос:
По какой-то причине, если я объявляю символ со ссылкой на класс, то внутри него не работают события
т.е код
Код AS3:
a.b.addEventListener(MouseEvent.Click,FunName)
function FunName(Event:MouseEvent):void{}
работать будет. А
Код AS3:
b.addEventListener(MouseEvent.Click,FunName)
function FunName(Event:MouseEvent):void{}
(внутри символа а) - не будет.
а объявлен со ссылкой на класс

угумс... А если мне, допустим, нужно поэтапно сформировать персонажа в игре? Ведь можно понаделать стопкадров и в каждом кодец для выбора расы, класса и т.д.?


Последний раз редактировалось Wolsh; 01.09.2012 в 01:05.
Старый 31.08.2012, 23:39
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 13  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Feareles - на будущее:
1. Не забывайте оформлять код в сообщении соответственными тегами.
2. Одна тема - один вопрос.
__________________
Идите первым!

Старый 01.09.2012, 01:28
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 14  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Цитата:
Ведь можно понаделать стопкадров и в каждом кодец
Можно, если инстинкт самосохранения в отключке.
Мне то казалось, лучше делать не то, что можно, а то что нужно.

Всегда есть несколько способов что-то сделать. Среди них всегда найдется парочка простых, очевидных и красивых неправильных решений. Использовать кадры мультика как окна состояний программы или страницы сайта решают 90% начинающих разработчиков — поиском Вы найдете здесь не одну сотню тем от них, посвященных вопросу "не пойму чё за фигня творится". А фигня простая — не надо кушать суп паяльником. Ложки прямо здесь, на рабочем столе.
__________________
Reality.getBounds(this);

Старый 01.09.2012, 14:51
Frost47rus вне форума Посмотреть профиль Отправить личное сообщение для Frost47rus Найти все сообщения от Frost47rus
  № 15  
Ответить с цитированием
Frost47rus
[+4 08.09.13]

Регистрация: May 2012
Сообщений: 131
Код AS3:
function FunName(Event:MouseEvent):void{}
не надо так делать
Код AS3:
function FunName(someVar:MouseEvent):void{}
лучше делать так.
не стоит пихать в имена переменных - дефолтные имена.

Код AS3:
a.b.addEventListener(MouseEvent.CLICK, FunName)
такая схема будет работать только в случае, если

1) переменная a - есть экземпляр отдельного класса, в котором b - заявлена как публичная переменная.
т.е.
Код AS3:
public class someClass extends Sprite{
  public var b:Sprite = new Sprite();
  public function someClass(){
  ....
  }
....
}
соответственно в мейне так:
Код AS3:
var a:someClass = new someClass();
a.b.addEventListener(....
либо вариант №

2) если a - это экземпляр мувиклипа из коллекции, внутри которого присутствует некий элемент b(movieclip), доступный для вызова из кода(ему дано соответствующее имя).

Старый 01.09.2012, 15:13
Feareles вне форума Посмотреть профиль Отправить личное сообщение для Feareles Найти все сообщения от Feareles
  № 16  
Ответить с цитированием
Feareles

Регистрация: Aug 2012
Сообщений: 10
a и b - экземпляры мувиков. Имена естественно даны. Другое дело в том, что при компиляции отругивается на MouseEvent.

Старый 01.09.2012, 15:18
Frost47rus вне форума Посмотреть профиль Отправить личное сообщение для Frost47rus Найти все сообщения от Frost47rus
  № 17  
Ответить с цитированием
Frost47rus
[+4 08.09.13]

Регистрация: May 2012
Сообщений: 131
Тогда как ты обращаешься к a.b. ???? Если a и b - разные мувики?

Старый 01.09.2012, 15:23
Feareles вне форума Посмотреть профиль Отправить личное сообщение для Feareles Найти все сообщения от Feareles
  № 18  
Ответить с цитированием
Feareles

Регистрация: Aug 2012
Сообщений: 10
ну да. b находится на таймлайне а. Вызван статически

Старый 01.09.2012, 15:36
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 19  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Цитата:
при компиляции отругивается на MouseEvent
Цитата:
b.addEventListener(MouseEvent.Click,FunName)
Потому что имена констант пишутся капсом.
Еще в AS3 имена функций принято писать с маленькой, и только классов — с большой.
Обработчики рекомендуют оформлять как eventTarget + eventType + Handler(event:EventClass):void
То есть например openFileButtonClickHandler(event:MouseEvent):void
Ну а если контекст ясен, то просто "clickHandler". По старой традиции ecma script можно и "onClick".

Добавлено через 34 минуты
"b" это имя экземпляра или переменная, хранящая ссылку на экземпляр, или свойство класса?
__________________
Reality.getBounds(this);

Старый 03.09.2012, 06:13
Feareles вне форума Посмотреть профиль Отправить личное сообщение для Feareles Найти все сообщения от Feareles
  № 20  
Ответить с цитированием
Feareles

Регистрация: Aug 2012
Сообщений: 10
b- экземпляр мувика, статически объявленного в а

Создать новую тему Ответ Часовой пояс GMT +4, время: 19:05.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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