![]() |
|
||||||||||
|
|||||
|
Регистрация: May 2006
Адрес: РБ, Уфа ...
Сообщений: 75
|
И еще вопрос как реализовать, что при клике на регион срабатывал мувик, и появлялось окно с данными?! а то даже не знаю с чего начать ...
|
|
|||||
|
Регистрация: May 2006
Адрес: РБ, Уфа ...
Сообщений: 75
|
более менее разобрался с появляющимся окном ... но почему-то не получается привязать функцию на сам "кнопорегион" а на обычную кнопку без проблем ...
|
|
|||||
|
Квач
Регистрация: Sep 2006
Адрес: Украина, Киев
Сообщений: 1,526
|
Ну и что, что их 76?
Можно обойти их в цикле. Сформируйте, пожалуйста, более конкретно задачу с выпадающим окном и функцией, которую хотите вызывать по клику на регионе. Я сейчас на работе. Приду домой и вечером постараюсь вам всё написать в виде примера.
__________________
Да не нужно тебе читать документацию по Flash и AS от Adobe - ты слишком умён для этого |
|
|||||
|
Регистрация: May 2006
Адрес: РБ, Уфа ...
Сообщений: 75
|
Дело такое, какие я только "извращения" не ставил на "кнопорегионы" - ну не хочет это у меня работать
...собственно при клике на "кнопорегион" - появляется окно, в котором содержаться данные в XML файле для каждого "кнопорегиона" отдельно ... ![]() |
|
|||||
|
Квач
Регистрация: Sep 2006
Адрес: Украина, Киев
Сообщений: 1,526
|
2 Makak:
Понятно. Извращения ставить не надо. ^_^ Я напишу всё позже. С XML проблем нет? Хотя, это уже разговор не по этой теме...
__________________
Да не нужно тебе читать документацию по Flash и AS от Adobe - ты слишком умён для этого |
|
|||||
|
Регистрация: May 2006
Адрес: РБ, Уфа ...
Сообщений: 75
|
с XML вроде нету ... вот сижу разбираюсь ...
![]() |
|
|||||
|
Квач
Регистрация: 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;
}
И я вам рекомендую в большинстве случаев забыть про кнопки. Я имею ввиду кнопки как тип символа. Они не нужны. Посмотрите на этот пример, на то, как сделана кнопка закрытия окна с описанием региона, как сделаны сами регионы и поймёте, что они по сути не нужны. ^_^
__________________
Да не нужно тебе читать документацию по Flash и AS от Adobe - ты слишком умён для этого Последний раз редактировалось Хемуль; 03.10.2006 в 00:20. |
|
|||||
|
Регистрация: May 2006
Адрес: РБ, Уфа ...
Сообщений: 75
|
2 Хемуль
Вы даже себе не представляете, как сильно я вам благодарен ... позвольте мне Вас хоть как то отблагодарить, если Вы не против вышлю вам Башкирского меда ![]() з.ы. практически все понял ... кстати если понадобится сменить свойство региона использовать что-то типа этого: |
|
|||||
|
Квач
Регистрация: Sep 2006
Адрес: Украина, Киев
Сообщений: 1,526
|
2 Makak:
Да забудьте вы про это setProperty. Это очень устаревший метод присвоения свойству обьекта какого-либо значения. Просто пишите: Но в данном вашем куске кода не нужно писать 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());
};
читать можно как: в обьекте this свойству _alpha присвоить значение 10.
__________________
Да не нужно тебе читать документацию по Flash и AS от Adobe - ты слишком умён для этого |
|
|||||
|
Регистрация: May 2006
Адрес: РБ, Уфа ...
Сообщений: 75
|
... оказывается все еще проще, чем я думал
... у меня просто книжка по flash 5 ... других нету ![]() ну так позвольте все-таки мне вас отблагодарить ![]() |
![]() |
![]() |
Часовой пояс GMT +4, время: 01:04. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|