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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 18.09.2011, 02:00
wlad вне форума Посмотреть профиль Отправить личное сообщение для wlad Найти все сообщения от wlad
  № 1  
Ответить с цитированием
wlad

Регистрация: Jul 2010
Адрес: Москва
Сообщений: 256
Записей в блоге: 1
По умолчанию научный вопрос о подключении клипа в общем случае

Дорогие друзья !

Что-то как-то мне не очень везет на поиски литературы, с неким обращаюсь с вопросом почти каноническим.. как мне кажется.. А именно..

Если ты во флеше нарисовал некую простейшую однослойную анимацию (хотя бы однослойную), и как-то ее назвал (к примеру, clip_exp), то можно ли этот клип вызывать в нужном для тебя месте твоей игры? К примеру, после нажатия кнопки...

Что-то у меня не пошло - это клип включается сразу же... Невзирая на все мои попытки управлять им...

Можно разумеется, с ходу из него сделать .swf или даже .avi - файл, только потом ка их прикреплять? У меня обычным include не получилось...


С уважением

Влад

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

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Удали экземпляр со сцены, а в библиотеке укажи класс для символа. "В нужном месте игры" создай новый экземпляр этого класса и добавь его на сцену.
__________________
Reality.getBounds(this);

Старый 18.09.2011, 14:42
wlad вне форума Посмотреть профиль Отправить личное сообщение для wlad Найти все сообщения от wlad
  № 3  
Ответить с цитированием
wlad

Регистрация: Jul 2010
Адрес: Москва
Сообщений: 256
Записей в блоге: 1
Полный пас...

Изображаю компонент - регистрирую как фрагмент ролика в библиотеке (прописываю класс как my_class, имя как cl_1 ) - преобразовываю все в скомпилированный компонент (имя cl_2 SWF с тремя кубиками как обозначение типа, в библиотеке виден)..

Пишу для первого кадра отдельного слоя код (сделал отдельный слой для кода), просто запускающий клип после щелчка в любом месте поля...

Код AS3:
function ff (e:MouseEvent):void
{    var ec:my_class_2 = new my_class_2();
} // function ff (e:MouseEvent):void
 
  stage.addEventListener(MouseEvent.CLICK, ff);
Далее - потрясный эффект: если я со сцены ничего не удалю - все нерегулируемо и клипа нет, если я со сцены клип удалю - ничего не вызывается, если я сперва удалю клип со сцены, а затем создам новый - опять нерегулируемо...

Цитата:
создай новый экземпляр этого класса и добавь его на сцену.
Это следуя совету...

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

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
1) ну и где тут "и добавь его на сцену"? Ты его только создаешь в памяти и все.
2) я ничего не говорил про скомпилированные компоненты, что за странный ход, все гораздо проще.
__________________
Reality.getBounds(this);

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

Регистрация: Jul 2009
Сообщений: 149
Код AS3:
addChild(ec);

Старый 19.09.2011, 00:05
wlad вне форума Посмотреть профиль Отправить личное сообщение для wlad Найти все сообщения от wlad
  № 6  
Ответить с цитированием
wlad

Регистрация: Jul 2010
Адрес: Москва
Сообщений: 256
Записей в блоге: 1
Доррогой Wolsh !

Твой метод имеет один недостаток: он совсем НЕ работает для случая продолжительных клипов...

То, как надо:

1. В отдельном файле делается "*.swf" по мотивам последовательности кадров клиппа
2. Пишется примерно вот такой код:
Код AS3:
var as_s:Sprite = new Sprite(); addChild(as_s);
var as_l = new Loader(); 
var as_r = new URLRequest("clip_exp_6.swf");
as_l.load(as_r); as_s.addChild(as_l);


Последний раз редактировалось wlad; 19.09.2011 в 00:08.
Старый 19.09.2011, 00:28
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 7  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

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

Добавлено через 22 минуты
"правильные вопросы" – это "стоит ли писать код в кадрах или надо писать в классах, как это делается с 2004 года (c выхода ActionScript 2.0)" и "стоит ли делать игры и приложения на таймлайне, как мультики, или они должны реагировать на действия пользователя (События), а не просто проигрывать последовательность кадров".
__________________
Reality.getBounds(this);

Старый 19.09.2011, 01:41
wlad вне форума Посмотреть профиль Отправить личное сообщение для wlad Найти все сообщения от wlad
  № 8  
Ответить с цитированием
wlad

Регистрация: Jul 2010
Адрес: Москва
Сообщений: 256
Записей в блоге: 1
Тогда несколько наивное продолжение дискуссии: как все-таки сделать так, чтобы анимация не исчезала? Меня это интересует, и я этого пока не добился...

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

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Не знаю, у меня никто никуда не пропадает - кликай
Вложения
Тип файла: zip clipInLibrary.zip (9.2 Кб, 41 просмотров)
__________________
Reality.getBounds(this);


Последний раз редактировалось Wolsh; 19.09.2011 в 03:43.
Создать новую тему Ответ Часовой пояс GMT +4, время: 14:56.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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