moonjogger, благодаря за отговора. Извинявай, мой пропуск е, че не обясних за какво ми трябва въпросният код. Докато разглеждах различни сайтове свързани с Flash попаднах на кодове с drop-down менюта. За съжаление повечето от тях се базират на филмчета, които "разгъват" текста, когато курсорът попадне върху бутона. Имаше обаче едно решение, при което ActionScript-а извиква един XML код, където е форматирано самото меню. По default менюто в XML кода е в "сгънат" вид (би могло и да е в "разгънат", стига да се промени expand = true вместо expand = false). Та, когато ActionScript-а извика XML скрипта на екрана се появява менюто в сгънат вид и за да го разгънеш трябва да кликнеш с мишката върху дадения бутон. Хрумна ми обаче, че би могло XML кода да е написан в "разгънат" вид с expand = true. Ако ActionScript-а не извика XML по default менюто се явява в "сгънат" вид. Ако обаче ActionAcript-а извика XML кода по default (да речем, когато мишката е върху бутона), менюто се явява в "разгънат" вид. Разбира се, първата ми реакция беше да задам някакво условие в XML-кода. За мое разочарование обаче установих, че XML кодът е нещо рудиментарно и не позволява условия (напр.if ... else) и подобно условие трябва да се постави в кода, който вика XML-a, т.е. в ActionScript-а.
И така, за да се реши горната задача си помислих, че трябва да има някакъв начин ActionScript-а да установява дали курсорът е върху бутона или не е -- някакъв флаг да се вдига или нещо подобно. Но нали съм начинаещ, реших да го направя по бабешкия начин -- с onRollOver. Помислих си, че мога си дефинирам някаква функция myButton.onRollOver, която да се използва за тестване на това дали курсорът е върхи бутона или не е, като възприема една или друга стойност (най-добре глобално). Така, ако се случи курсорът да е върху бутона, реших, че функцията ще приема някаква стойност, която може да се установи на различни места в ActionScript-а с външен на нея тест. Ако тестът е положителен се извиква XML кода и менюто се "разгъва". В противен случай си остава "сгънато".
Опитах примера, който ми предложи, но в него не само стойността на _global.x се тества само вътре във функцията (тестването трябва да стане външно), а и стойностт на това _global.x не се променя при поставяне на курсора върху бутона -- при поставяне на курсора върху бутона в Output-а виждам само връщане на изходната стойност на _global.x, т.е. _global.x = 7. Но да речем, го напишем така:
_global.x = 7;
myButton.onRollOver = function () {
_global.y = _global.x + 3;
_global.y==10 ? trace("yes") : trace("NO");
return _global.y;
};
И това май не върши работа, защото, когато проверим стойността на _global.y чрез trace(_global.y); в Output-а виждам, че се връща undefined.
|