Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript (http://www.flasher.ru/forum/forumdisplay.php?f=5)
-   -   Ошибка при использование функции _visible и еще пара вопросов. (http://www.flasher.ru/forum/showthread.php?t=61060)

flash_lamer1543 24.07.2004 05:40

Ошибка при использование функции _visible и еще пара вопросов.
 
Доброго времени суток.

Последнюю неделю не спал, захватил процесс создания всякой разности на flash. Читал много доков примеров и тд. Заранее прошу прощения, если мой вопрос(ы) обсуждался(лись) или они окажутся слишком глупыми, но в поиске и в умных книжках ничего не нашел нашел...
Проблема возникла следущая, мне нужно что бы при наведенни на кнопку курсора появлялась надпись, а при перемещении его с кнопки она исчезала. Вроде просто как три рубля. Из надписи сделал мувик, для появления и исчезновения решил использовать функцию visible, но проблема в том что срабатывает через раз, точнее когда запустиш и поводаш по кнопкам, постепенно начинают появлятся отдельные надписи, потом они начинают появлятся все, но все это происходит очень хаотично, не так как надо:( Заметил некоторые мелкие баги во флеше, но такого чесно говоря не ожидал... Делалось все на flash MX.
Код выглядит примерно так:

SZ_AO._visible = false;
button_SZ_AO.onRollOver = function() {
SZ_AO._visible = true;
button_SZ_AO.onRollOut = function() {
SZ_AO._visible = false;

Соответсвенно SZ_AO это мувик-надпись которая должна поялвятся и исчезать. А button_SZ_AO это кнопка с которой происходит действие. Может код и кривой, но ничего умнее мне не пришло в голову.

Еще вопрос как сделать что бы эта надпись появлялась плавно? Сначала хотел привязатся ко времени и менять параметр alpha, но возникли 3 проблемы. Я во первых взял значение GetTimer и исходя из него пытался сравнивать величину, что бы скажем каждые 100 милисекунд у меня менялась прозрачность на 10. Flash меня послал далеко и сказал что скриптик мой лучше стопить, я так пологаю что ему не понравилось что я сравниваю динамическую величину(счетчик) и статическую... решил сделать что бы он условие проверял не в реальном времени а в каждые 10 милесекунд при помощи SetInterval, но тут началось самое интересное. GetTimer считает точно, что при отладке очень корошо видно, а SetInterval каждый раз начинает считать по разному, как ему вздумается, это первое, второе результат скрипта оказался примерно тем же что и в первом случае. И третье, alpha на прозрачность шрифта никак не влиял, абсолютно, т.е. при отрисовке если его менять руками то он становился прозрачным, но при запуске он становился полностью черным, хотя отладчик показывал то значение alpha, которое задавалось, т.е. равное около 20, а в реале никакого эффекта, меня это несколько удивило...
Код примерно такой:
i = 0
i1 = 0
i2 = 0
i3 = 0

_root.onEnterFrame = function() {
SZ_AO._alpha = 0;
i1 = getTimer()
milli = Math.floor(i1);
};
button.onRollOver = function() {
i3 = milli
timerID1 = setInterval(timerID, 10)
timerID = function() {
while (i2 < 100) {
if (i3 + 20 < milli) {
i2 = i2 + 10
};
i3 = i3 + 20
};
};
SZ_AO._alpha = i2;
};


Правда коряво немного, но я его долго мучал и не причесывал так как в конечном счете он не заработал...
Вообщем ничего из этого не вышло...
Хочется услышать ваши коментарии...

Ну и последний вопрос. У одной из кнопок надпись сверху(появляющаяся) и при наведении и убирании курсора кнопка просто с ума сходит, с этим можно что то сделать?

PS не бейте сильно ногами:) Помогите начинающему плз.

sergwizard 24.07.2004 14:41

Вложений: 1
Цитата:

Заранее прошу прощения, если мой вопрос(ы) обсуждался(лись) или они окажутся слишком глупыми, но в поиске и в умных книжках ничего не нашел нашел...
Плохо искал. Эта тема обсуждалась здесь не один раз. И только твоя просьба о прощении спасает тебя от побития ногами.
Цитата:

Заметил некоторые мелкие баги во флеше, но такого чесно говоря не ожидал...
Самое интересное, что чем больше ты будешь знать и уметь во флэше, тем меньше багов в нем будешь видеть. Но это так, к слову. Перейдем к делу.
Ты правильно решил сделать для появляющейся надписи – отдельный мувик. И, конечно же, удобно сделать этот мувик - один для всех кнопок. Только содержание надписи менять. Значит, в этом мувике будем использовать динамическое текстовое поле, и менять надпись в зависимости от кнопки, на которую наводим мышь. И так, сделали такой мувик, и подлинковали его (дали ему linkage name. Допустим "tip").
Теперь напишем функцию для появления этого мувика:
Код:

function showTip(txt){
        this.attachMovie("tip","tip",0,{_x:_xmouse+10,_y:_ymouse-10});
        tip.tf.text = txt;
        tip._alpha = 0;
        this.onEnterFrame = function(){
                tip.startDrag(false)
                }
}

Ты заметил, что при вызове этого мувика, мы сразу даем ему полную прозрачность (tip._alpha = 0). И, для того, чтобы постепенно менять эту самую альфу, нам – в данном случае – не нужно использовать никакого getTimer и setInterval,- у нас есть намного более простой и доступный метод – onEnterFrame.
Используем его по назначению и пишем функцию изменения прозрачности. Пишем ее в таймлайне мувика-надписи.
Код:

this.onEnterFrame = function(){
        t = _root.flag;
_alpha += (2*t*(_alpha<100)-10*!(t)*(_alpha>0));
if(_alpha<=0){
                this.removeMovieClip();
}
}

А теперь вписываем в кнопки примерно такой код:
Код:

on(rollOver){
        flag=1;
        showTip("Это такая надпись");
}
on(rollOut, press){
        flag =0;
}

Вот и все. А нет, вот еще одна мелочь. Для того, чтобы шрифт дружил с альфой, надо его ембедить. Для этого, - выдели динамическое текстовое поле и, на панельки "Properties" нажми кнопку "Characters". Выбери "All Characters".
Вот теперь все.
Подробности в примере.

Nox Noctis 24.07.2004 23:34

визард, если бы на этгом форуме были какие-нибудь еще награды (кроме плюсов :D ) - за это объяснение ты бы точно получил одну :) респект :)

sergwizard 25.07.2004 00:08

Да…, :) знаешь, в последнее время что-то редко попадаются вопросы, заданные не в форме "сделай мне" или "сделай за меня", а в нормальной, вежливой форме. Да к тому же еще человек показывает, ЧТО он сам сделал, какие усилия сам прилагал… Пусть неправильно, пусть что-то не получалось, но ведь сам..., старался…, делал. То есть не на халяву хочет. И самое главное, - наглости и спеси нет. Таким людям хочется помогать.

ЗЫ. А насчет наград, - ты, как модератор, можешь и свою ввести. Я думаю, идея неплохая. Многие сочли бы за честь получить ее от тебя. Вот и пусть стремятся… Тем самым уровень форума повысится.
А? как тебе такая (твоя же) идея? :)

Nox Noctis 25.07.2004 00:53

и пусть на моём надгробии будет написано кратко: "умер от скромности" :))))

Штрек 25.07.2004 01:36

Цитата:

Оригинал написал(а) Nox Noctis
и пусть на моём надгробии будет написано кратко: "умер от скромности" :))))
"............. И никто не напишет про вас в газете: "Еще один
сгорел на работе". И на могиле не будет сидеть прекрасная вдова с персидскими глазами. И заплаканные дети не будут спрашивать: "Папа, папа, слышишь ли ты нас? " :p

sergwizard 25.07.2004 01:50

Nox, пусть скромность красит тех, кого уже ничто украсить не может.
А на твоем надгробье напишут: "Зарезан DeliMIter(ом). Случайно." :D
Штрек, ты что "Двенадцать стульев" и "Золотого теленка" наизусть знаешь? Как "Отче наш"? :)
Ты дом достроил?

Штрек 25.07.2004 02:15

Цитата:

Оригинал написал(а) sergwizard
Ты дом достроил?
Как в сексе - главное процесс. :D
Если б достроил, давно б организовал бы
какой нить семинар на тему" О влиянии морского
воздуха на творческие способности народонаселения с форума Флэшер.ру" /с выездом на место. :p /

sergwizard 25.07.2004 02:30

Ну-у-у..., ты какой-то маньяк сексуальный (зачеркнуто) строительный. :p
Леньтяюга! Скоро уже лето закончится... Nuran тебе этого не простит, он уже второй месяц на чемодане сидит. :D

Штрек 25.07.2004 02:42

Цитата:

Оригинал написал(а) sergwizard
Леньтяюга! :D
Оборудование только одной ванной комнаты -
не меньше штуки баксов, а их предполагается -
....надцать. Ну и так далее...


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

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