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

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

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

Регистрация: Mar 2009
Сообщений: 14
Question Вопросы по созданию квестовой игры

Доброго времени суток.

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

Затыки буду описывать по порядку. Чтобы темы не плодить. Так ведь можно? Да?

Итак, затык номер 1.

У меня на локации несколько объектов. Кликаешь на объект - внизу появляется текстовый коммент, что это за объект.
Висит это сообщение 4 секунды (например), а потом исчезает.

Пользуюсь функцией SetTimeout.

Код AS1/AS2:
var mind:String = "";//То что говорит герой об объекте
 
//Картина
pic.onPress = function(){
	p=setTimeout(empty,1000*4);
	mind = "Картина. Висит. ";
}
pic.onRelease = function(){
	clearTimeout(p);
}
	function empty(){
	mind = "";
}
 
//Книга
book.onPress = function(){
	b=setTimeout(empty,1000*4);
	mind = "Книга лежит на столе";
}
book.onRelease = function(){
	clearTimeout(b);
}
	function empty(){
	mind = "";
}
Проблема в том что видимо интервал неправильно очищается.

Потому что я например нажал на "Картину", подождал 2 секунды и нажал на "Книгу".

Должно быть: 2 секунды текста о "Картине" и 4 секунды текста о "Книге".
А вместо этого - 2 секунды о "Картине" и 2 секунды о "Книге"

Что я не так делаю?

Старый 08.04.2009, 04:57
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 2  
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Любое нажатие должно отменять предыдущий интервал, а у вас этого не происходит. Зато отжатие очищает интервал запущенный нажатием, зачем?
И почему у вас два раза описана функция empty?
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 20.04.2009, 00:09
Raddjuret вне форума Посмотреть профиль Отправить личное сообщение для Raddjuret Найти все сообщения от Raddjuret
  № 3  
Raddjuret

Регистрация: Mar 2009
Сообщений: 14
Так. По всплывающему тексту теперь всё как надо. Большое спасибо!

Затык номер 2.
По своей структуре диплом будет представлять собой "родительскую" флэшку, в которую будут подгружаться "дочерние". Потому что иначе если всё компилировать в один файл - грузиться он будет фиг знает как долго (это мы уже проходили)

Как я понял - единственный метод такой сцепки - использовать функцию loadMovieNum();

Пример: у меня 2 флэшки - родительская loc1.swf, дочерняя loc2.swf
В первой я прописываю переменную var quadro:Boolean = false;
Во второй условие - что если quadro = false то у объекта bquad параметр _visible = false;

1) Как сделать так, чтобы при подгрузке "дочерней" флэшки значение переменной quadro из "родительской" на неё повлияло и объект bquad действительно стал невидимым?
2) Есть ли другие методы сцепки разрозненных swf роликов?
* использование браузера в качестве посредника крайне не приветствуется. Проект хочется запускать в режиме fullscreen.

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

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Ну если непременно loadMovieNum, то Вы, видимо, имеете в виду ЗАМЕНУ свф-файла в плеере. Передать какой-то параметр при этом можно только через объект Global, и то не факт))) Мне вот только непонятно, что заставляет Вас так извращаться - неужели нельзя нормально подгрузить вторую флэшку В ПЕРВУЮ не выгружая эту первую, как собственно и делается во всех сайтах (к примеру)? Не ищете легких путей?
__________________
Reality.getBounds(this);

Старый 20.04.2009, 02:45
Raddjuret вне форума Посмотреть профиль Отправить личное сообщение для Raddjuret Найти все сообщения от Raddjuret
  № 5  
Raddjuret

Регистрация: Mar 2009
Сообщений: 14
Wolsh

Я бы с удовольствием искал пути лёгкие. Просто в AS я разбираюсь плохо. А проект сдать надо. Потому постепенно осваиваю, ошибаюсь, что-то делаю вверх ногами..

Как подгрузить вторую флешку в первую?

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

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Ну извините, если что - не всегда можно сразу определить уровень опыта того кто спрашивает.
Подгружать лучше всего - используя класс MovieClipLoader. Он хорошо описан в хелпе и есть там пример, а на форуме просто пруд пруди - загрузка внешних файлов свф или картинок осуществляется одинаково - надо ли говорить, что это самая востребованная операция? Вкратце по-русски: создаете пустой мувиклип (createEmptyMovieClip), создаете новый экземпляр класса MovieClipLoader через new, добавляете ему слушателя сообщений о событиях (в отличие от ас1-методов лоадМуви и лоадМувиНум этот класс отлично сообщает о всех стадиях загрузки) - в хелпе для этого создается новый Object, в реальности же это не обязательно - слушать может любой объект, хоть рут. Слушателю назначаете метод, которым обрабатывать события лоадера, ну и собственно начинаете загрузку.
Код:
var container:MovieClip = this.createEmptyMovieClip("container", getNextHighestDepth());
var mcLoader:MovieClipLoader = new MovieClipLoader();
mcLoader.addListener(this);
this.onLoadInit(mc:MovieClip) {
    trace("onLoadInit: " + mc);
}
mcLoader.loadClip("part2.swf", container);
__________________
Reality.getBounds(this);

Старый 26.04.2011, 00:38
Raddjuret вне форума Посмотреть профиль Отправить личное сообщение для Raddjuret Найти все сообщения от Raddjuret
  № 7  
Raddjuret

Регистрация: Mar 2009
Сообщений: 14
Чтобы не плодить темы, напишу в собственной старой.
Продолжаю изыскания в области AS2

Допустим, у меня имеется кнопка (назову её starter) и имеется мувиклип (mc_1) с анимацией, в 1-м кадре которого прописан stop();

Для запуска анимации mc_1 кнопкой starter я пишу в кадре сцены код:
Код AS1/AS2:
starter.onRelease = function(){
	_root.mc_1.gotoAndPlay(2);
}
Всё работает.

Теперь допустим, что есть мувиклип mc_2 (с таким же stop() в первом кадре), который содержится в отдельном swf, загружаемом функцией loadMovieNum на level1

Задача: при нажатии на кнопку starter запустить и mc_1 и mc_2 одновременно.

Как в AS прописать обращение к мувиклипу флэшки подгружаемой извне? И возможно ли это?

Старый 26.04.2011, 12:33
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 8  
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Цитата:
Чтобы не плодить темы, напишу в собственной старой.
О! Давайте из форума свалку устроим? А еще лучше, будем все вопросы писать в одной теме, а то наплодим их, а потом искать будет тяжело. А тут все сразу в одной теме. Удобно же.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

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

Теги
clearTimeout , settimeout , игра , квест

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

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


 


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


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