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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 07.01.2019, 14:07
Bletraut вне форума Посмотреть профиль Отправить личное сообщение для Bletraut Найти все сообщения от Bletraut
  № 31  
Ответить с цитированием
Bletraut
[+ 22.07.15]
 
Аватар для Bletraut

Регистрация: Mar 2013
Адрес: Вне пространства.
Сообщений: 544
Отправить сообщение для Bletraut с помощью ICQ Отправить сообщение для Bletraut с помощью Skype™
Цитата:
Сообщение от deepNoise Посмотреть сообщение
Почитал справку и ничего не понял. Кажется там о том, как создавать дочерние и родительские клипы, но не как создать имя клипа с переменной.
Попробовал так:
Код AS3:
var wayClip:MovieClip = new MovieClip();
wayClip.name = 'way'+way;
 
wayClip.gotoAndStop(keysMap[e.keyCode]);
text = wayClip.tf.text.replace(pattern,repl);
Выдаёт такую ошибку:
Как сделать правильно?
Данная ошибка в этом коде не может возникнуть, проблема в функции on_keyDown(), предположительно wayClip не добавлен в список отображения
__________________
Я заклинаю вас действовать иначе.

Старый 07.01.2019, 17:54
Swer вне форума Посмотреть профиль Отправить личное сообщение для Swer Найти все сообщения от Swer
  № 32  
Ответить с цитированием
Swer
 
Аватар для Swer

Регистрация: Feb 2014
Сообщений: 32
Чтобы достать свой MovieClip из библиотеки, его нужно создать. Чтобы создать нужно присвоить ему имя класса,
потом можно поместить в список отображения.
Когда назначишь имя класса можно его создать так
Код AS3:
var nameClass = "way"+way;
var mc:MovieClip = new (getDefinitionByName( nameClass ) as Class)();
addChild( mc );
Но лучше сделать функцию
Код AS3:
//var wayClip:MovieClip = getWayByIndex( way );
//addChild( wayClip );
function getWayByIndex( n:int ):MovieClip{
	var mc:MovieClip;
	switch( n ){
		case( 0 ):  mc = new Way();    break;
		case( 1 ):  mc = new Way1();  break;
		case( 2 ):  mc = new Way2();  break;
		case( 3 ):  mc = new Way3();  break;
		case( 4 ):  mc = new Way4();  break;
		default:     mc = new Way();    break;
	}
	return mc;
}
В этом видео показано присвоение класса MovieClip'у в библиотеке
https://www.youtube.com/watch?time_c...&v=e0tLVbAvDew

Старый 08.01.2019, 01:20
deepNoise вне форума Посмотреть профиль Отправить личное сообщение для deepNoise Найти все сообщения от deepNoise
  № 33  
Ответить с цитированием
deepNoise

Регистрация: May 2018
Сообщений: 23
Цитата:
Чтобы достать свой MovieClip из библиотеки, его нужно создать.
Я совсем забыл, что клип со следующими вариантами действий нужно ещё загрузить на сцену. В AS 2.0 была какая то команда, которая грузила клип из библиотеки в клип на сцене, кажется называлась loadMovieClip. А как это сделать в AS 3.0? Посмотрел в хелпе, не нашёл ничего напоминающего loadMovieClip.
addChild() судя по уроку просто создаёт экземпляр клипа на сцене. Это не совсем то, что нужно. Если делать так, то придётся ещё как то удалять старый клип с прошлыми вариантами ответов.
Как загрузить клип из библиотеки в клип на сцене в AS 3.0?

Swer Я попробовал скопипастить твою функцию, у меня выдаёт ошибку "вызов предположительно неопределённого метода Way1, 2, 3...".

Наверно нужно ещё раз прояснить, что я пытаюсь сделать, чтобы не было вопросов) У меня в библиотеке будут клипы с именами way1-1, way1-2, way 1-3 и т.д., в каждом из которых будут по четыре кадра с четырьмя(или более) вариантами действий. Число после "way" в названии клипа означает порядковый номер ветки событий в игре, которому соответствует переменная way.
В клипе way1 есть четыре варианта действий. При выборе каждого варианта должен грузится клип way1-1, way1-2, way1-3 или way1-4 соответственно. Новый клип должен заменить way1, когда закончится печататься текст выбранного варианта действия.
Затем в way1-1 будут ещё четыре варианта действий, которые будут грузить клипы way1-1-1, way1-1-2, way1-1-3, way1-1-4 соответственно, и т.д. с другими ветками и вариантами.
Поэтому я и пытаюсь сделать имя клипа из "way" и переменной way, чтобы получить универсальное имя для загрузки следующего клипа и действий с текущим.

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

Регистрация: Feb 2014
Сообщений: 32
Где-то спрашивали - "как в as3 достать MovieClip из библиотеки ", если не ошибаюсь ответ был примерно таким - " as3 это не as2 достать MovieClip по имени не получиться, только через присвоение класса этому MovieClip ".
Система диалогов по моему это сложная штука, поэтому без классов не обойтись.
У тебя непонятная структура, к примеру я сейчас на ветке 1-2-5-4-3, нажал 4 значит я должен попасть на
1-2-5-4-3-4 . Но если добавить условие , допустим я нажал 4 - это значит я выбрал "перепрыгнуть через яму"
, проверяется моя удача - если удачлив - один путь, если нет - другой . Как ты это сделаешь ?
Наверное должен быть класс, который содержит текст - описание, картинку или анимацию, массив ответов и
функцию, которая обрабатывает выбранный ответ.

Старый 08.01.2019, 16:21
ZackMercury вне форума Посмотреть профиль Отправить личное сообщение для ZackMercury Найти все сообщения от ZackMercury
  № 35  
Ответить с цитированием
ZackMercury
 
Аватар для ZackMercury

блогер
Регистрация: Jul 2013
Адрес: Север
Сообщений: 1,912
Записей в блоге: 23
Отправить сообщение для ZackMercury с помощью ICQ Отправить сообщение для ZackMercury с помощью Skype™
Цитата:
addChild() судя по уроку просто создаёт экземпляр клипа на сцене.
Ошибочное предположение, он ничего не создаёт.
Цитата:
В AS 2.0
Там много чего было, однако языки совершенно разные, непохожие друг на друга, так и структура.
AS2 был чем-то вроде примитивного инструмента для расширения задач анимации, вроде GML в гейм-мейкере.
AS3 - это уже полноценный, более-менее современный высокоуровневый объектно-ориентированный язык программирования, который устроен иначе и который нужно изучать с нуля, начиная с основ ООП и программирования в целом, а не делая предположения и сравнивая его с игрушкой, от задач которой он изошёл. Здесь всё гораздо серьёзнее.
__________________
There is no thing in this world that is not simple.

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

Регистрация: Feb 2014
Сообщений: 32
Написал небольшой пример с классами, разобраться сложно, но это лучше чем ничего.
Вложения
Тип файла: rar TQ.rar (227.8 Кб, 5 просмотров)

Старый 08.01.2019, 20:39
deepNoise вне форума Посмотреть профиль Отправить личное сообщение для deepNoise Найти все сообщения от deepNoise
  № 37  
Ответить с цитированием
deepNoise

Регистрация: May 2018
Сообщений: 23
Цитата:
У тебя непонятная структура, к примеру я сейчас на ветке 1-2-5-4-3, нажал 4 значит я должен попасть на
1-2-5-4-3-4 . Но если добавить условие , допустим я нажал 4 - это значит я выбрал "перепрыгнуть через яму"
, проверяется моя удача - если удачлив - один путь, если нет - другой . Как ты это сделаешь ?
Ну у меня же будет не РПГ, а скорее интерактивная новелла со множеством ответвлений) Никакой удачи там проверятся не будет, просто на одно действие один результат.

Цитата:
Написал небольшой пример с классами, разобраться сложно, но это лучше чем ничего.
Да, что то уж слишком всё сложно и непонятно. Все скрипты теперь вне основного файла, и в них полно выражений, которых я не знаю. Наверно зря я взялся за AS 3.0, надо было пробовать в AS 2.0. Правда тогда придётся думать, как сделать эффект печати в этой версии скриптов.
Вот бы такую программу, где можно было бы просто написать все варианты действий и их результаты, а не копаться в коде. Что нибудь вроде конструктора диалоговой системы. Если кто нибудь знает такую программу, посоветуйте, а то я совсем запутался.
Может стоит гейм-мейкер попробовать, попроще будет. Но всё равно опять придётся учится.

Старый 08.01.2019, 20:55
Swer вне форума Посмотреть профиль Отправить личное сообщение для Swer Найти все сообщения от Swer
  № 38  
Ответить с цитированием
Swer
 
Аватар для Swer

Регистрация: Feb 2014
Сообщений: 32
Вроде как в Rpg Maker есть диалоговая система, но я не уверен - не использовал.
Первый попавшийся пример -https://www.youtube.com/watch?v=d5WyKWLVloM

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

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

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


 


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


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