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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 01.10.2006, 16:28
Makak вне форума Посмотреть профиль Отправить личное сообщение для Makak Найти все сообщения от Makak
  № 21  
Ответить с цитированием
Makak
 
Аватар для Makak

Регистрация: May 2006
Адрес: РБ, Уфа ...
Сообщений: 75
И еще вопрос как реализовать, что при клике на регион срабатывал мувик, и появлялось окно с данными?! а то даже не знаю с чего начать ...

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

Регистрация: May 2006
Адрес: РБ, Уфа ...
Сообщений: 75
более менее разобрался с появляющимся окном ... но почему-то не получается привязать функцию на сам "кнопорегион" а на обычную кнопку без проблем ...
Вложения
Тип файла: rar mapz.rar (8.5 Кб, 39 просмотров)

Старый 02.10.2006, 13:39
Хемуль вне форума Посмотреть профиль Отправить личное сообщение для Хемуль Найти все сообщения от Хемуль
  № 23  
Ответить с цитированием
Хемуль
Квач
 
Аватар для Хемуль

Регистрация: Sep 2006
Адрес: Украина, Киев
Сообщений: 1,526
Ну и что, что их 76?
Можно обойти их в цикле.
Сформируйте, пожалуйста, более конкретно задачу с выпадающим окном и функцией, которую хотите вызывать по клику на регионе. Я сейчас на работе. Приду домой и вечером постараюсь вам всё написать в виде примера.
__________________
Да не нужно тебе читать документацию по Flash и AS от Adobe - ты слишком умён для этого

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

Регистрация: May 2006
Адрес: РБ, Уфа ...
Сообщений: 75
Дело такое, какие я только "извращения" не ставил на "кнопорегионы" - ну не хочет это у меня работать ...

собственно при клике на "кнопорегион" - появляется окно, в котором содержаться данные в XML файле для каждого "кнопорегиона" отдельно ...
Вложения
Тип файла: rar mapz.rar (7.0 Кб, 41 просмотров)

Старый 02.10.2006, 15:50
Хемуль вне форума Посмотреть профиль Отправить личное сообщение для Хемуль Найти все сообщения от Хемуль
  № 25  
Ответить с цитированием
Хемуль
Квач
 
Аватар для Хемуль

Регистрация: Sep 2006
Адрес: Украина, Киев
Сообщений: 1,526
2 Makak:
Понятно. Извращения ставить не надо. ^_^ Я напишу всё позже.
С XML проблем нет? Хотя, это уже разговор не по этой теме...
__________________
Да не нужно тебе читать документацию по Flash и AS от Adobe - ты слишком умён для этого

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

Регистрация: May 2006
Адрес: РБ, Уфа ...
Сообщений: 75
с XML вроде нету ... вот сижу разбираюсь ...

Старый 03.10.2006, 00:17
Хемуль вне форума Посмотреть профиль Отправить личное сообщение для Хемуль Найти все сообщения от Хемуль
  № 27  
Ответить с цитированием
Хемуль
Квач
 
Аватар для Хемуль

Регистрация: Sep 2006
Адрес: Украина, Киев
Сообщений: 1,526
2 Makak:
Вот... Массив regionsDescriptions заполняется строками с описанием для каждого региона. Порядок добавления строк в массив определяет порядок, в котором они будут назначаться для регионов. То есть, первая добавленнная строка будет назначаться региону, имеющему мувиклип с именем "region1", вторая - "region2". Причём количество таких определений определяется длиной массива этих строк. То есть, если у вас на сцене будет 74 мувиклипа регионов, а в массив вы добавите только 10, то события будут определены только для мувиклипов region1-region10... Остальные мувиклипы будут просто "мёртвыми".
Код:
var maxScale:Number = 120;
var defaultScale:Number = 100;
var regionClipBaseName:String = "region";
var regionsDescriptions:Array = new Array();
regionsDescriptions.push("Описание первого региона, каким бы он первым ни был...");
regionsDescriptions.push("Описание второго региона, который по сути ничем не хуже первого.");
var winX:Number = 16;
var winY:Number = 160;
var winOpened:Boolean = false;

var regionsDescriptionsLength:Number = regionsDescriptions.length;

for (var index:Number = 0; index < regionsDescriptionsLength; index++)
{
	var regionName:String = regionClipBaseName + (index + 1);
	this[regionName].speedFactor = defaultScale;
	this[regionName].speed = 0;
	this[regionName].id = index;
	this[regionName].onRollOver = function()
	{
		this.speedFactor = maxScale;
		this.swapDepths(this._parent.getNextHighestDepth());
	};
	this[regionName].onRollOut = this[regionName].onReleaseOutside = function()
	{
		this.speedFactor = defaultScale;
	};
	this[regionName].onRelease = function()
	{
		if (!winOpened)
		{
			var windowClip:MovieClip = this._parent.attachMovie("window", "window", this._parent.getNextHighestDepth(), {_x:winX, _y:winY});
			windowClip.description.text = regionsDescriptions[this.id];
			winOpened = true;
			windowClip.closeButton.onRelease = function()
			{
				this._parent.removeMovieClip();
				winOpened = false;
			};
		}
	};
}

this.onEnterFrame = function()
{
	for (var regionId:Number = 0; regionId < regionsDescriptionsLength; regionId++)
	{
		var regionToUpdate:String = regionClipBaseName + (regionId + 1);
		updateRegion.apply(this[regionToUpdate]);
	}
}

function updateRegion()
{
	this.speed = (this.speed * 0.8) + ((this.speedFactor - this._xscale) * 0.2);
	this._xscale += this.speed;
	this._yscale = this._xscale;
}
Исходник прикрепляю. Вопросы в студию... ^_^
И я вам рекомендую в большинстве случаев забыть про кнопки. Я имею ввиду кнопки как тип символа. Они не нужны. Посмотрите на этот пример, на то, как сделана кнопка закрытия окна с описанием региона, как сделаны сами регионы и поймёте, что они по сути не нужны. ^_^
Вложения
Тип файла: zip swapDepthsAndMap.zip (6.7 Кб, 66 просмотров)
__________________
Да не нужно тебе читать документацию по Flash и AS от Adobe - ты слишком умён для этого


Последний раз редактировалось Хемуль; 03.10.2006 в 00:20.
Старый 03.10.2006, 01:41
Makak вне форума Посмотреть профиль Отправить личное сообщение для Makak Найти все сообщения от Makak
  № 28  
Ответить с цитированием
Makak
 
Аватар для Makak

Регистрация: May 2006
Адрес: РБ, Уфа ...
Сообщений: 75
2 Хемуль

Вы даже себе не представляете, как сильно я вам благодарен ... позвольте мне Вас хоть как то отблагодарить, если Вы не против вышлю вам Башкирского меда

з.ы. практически все понял ...

кстати если понадобится сменить свойство региона использовать что-то типа этого:
Код:
...this[regionName].onRollOver = function()
{
setProperty(this[regionName], _alpha, 10);
this.speedFactor = maxScale;
this.swapDepths(this._parent.getNextHighestDepth());
}; ...

Старый 03.10.2006, 01:57
Хемуль вне форума Посмотреть профиль Отправить личное сообщение для Хемуль Найти все сообщения от Хемуль
  № 29  
Ответить с цитированием
Хемуль
Квач
 
Аватар для Хемуль

Регистрация: Sep 2006
Адрес: Украина, Киев
Сообщений: 1,526
2 Makak:
Да забудьте вы про это setProperty. Это очень устаревший метод присвоения свойству обьекта какого-либо значения.
Просто пишите:
Код:
this[regionName]._alpha = 10;
Но в данном вашем куске кода не нужно писать this[regionName]. this - это указатель на обьект, для которого вызван обработчик события onRollOver (в данном случае). То есть, this в теле функции onRollOver вызывается для того обьекта, для которого она определена. Смотрите выше. Определена она для this[regionName]. То есть, в теле этой функции this у вас будет равен this[regionName]. И код, соответственно, будет выглядеть:
Код:
this[regionName].onRollOver = function()
{
    this._alpha = 10;
    this.speedFactor = maxScale;
    this.swapDepths(this._parent.getNextHighestDepth());
};
Просто примите для себя, что setProperty - это зло. Да ведь и неудобней писать. А так даже легче читается... Например, код:
Код:
    this._alpha = 10;
читать можно как: в обьекте this свойству _alpha присвоить значение 10.
__________________
Да не нужно тебе читать документацию по Flash и AS от Adobe - ты слишком умён для этого

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

Регистрация: May 2006
Адрес: РБ, Уфа ...
Сообщений: 75
... оказывается все еще проще, чем я думал ... у меня просто книжка по flash 5 ... других нету

ну так позвольте все-таки мне вас отблагодарить

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

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

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


 


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


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