Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   научный вопрос о подключении клипа в общем случае (http://www.flasher.ru/forum/showthread.php?t=168181)

wlad 18.09.2011 02:00

научный вопрос о подключении клипа в общем случае
 
Дорогие друзья !

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

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

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

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


С уважением

Влад

Wolsh 18.09.2011 02:56

Удали экземпляр со сцены, а в библиотеке укажи класс для символа. "В нужном месте игры" создай новый экземпляр этого класса и добавь его на сцену.

wlad 18.09.2011 14:42

Полный пас...

Изображаю компонент - регистрирую как фрагмент ролика в библиотеке (прописываю класс как 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);

Далее - потрясный эффект: если я со сцены ничего не удалю - все нерегулируемо и клипа нет, если я со сцены клип удалю - ничего не вызывается, если я сперва удалю клип со сцены, а затем создам новый - опять нерегулируемо...

Цитата:

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

Wolsh 18.09.2011 15:28

1) ну и где тут "и добавь его на сцену"? Ты его только создаешь в памяти и все.
2) я ничего не говорил про скомпилированные компоненты, что за странный ход, все гораздо проще.

ObOs 18.09.2011 15:37

Код AS3:

addChild(ec);


wlad 19.09.2011 00:05

Доррогой 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);


Wolsh 19.09.2011 00:28

А, ну я то отвечал на первую часть вопроса, а не на
Цитата:

... Можно разумеется, с ходу из него сделать .swf ...
Если все клипы делать отдельными файлами и загружать их в рантайме, то удачи конечно. Только потести сразу в интернете, а не на локалке, где загрузка почти моментальная. Ну и с хорошим таким толстым swf потести, не с черным квадратиком весом в четыре байта. Получится такой "по мотивам" с отставанием кадров на 200, что у тебя наконец-то возникнут правильные вопросы. Но пока пробуй, получай бесценный собственный опыт.

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

wlad 19.09.2011 01:41

Тогда несколько наивное продолжение дискуссии: как все-таки сделать так, чтобы анимация не исчезала? Меня это интересует, и я этого пока не добился...

Wolsh 19.09.2011 03:40

Вложений: 1
Не знаю, у меня никто никуда не пропадает - кликай


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

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