![]() |
|
||||||||||
|
|||||
|
Регистрация: Mar 2010
Сообщений: 10
|
захотелось сделать следующее: при наведении мышки на маленькую картинку рядом появляется такая же большая. Если увести мышку в другое место - большая картинка исчезает.
Помогите, пожалуйста, с исчезновением картинки. //слушатель наведения мышки txt.b_axel.addEventListener(MouseEvent.MOUSE_OVER, showAxel); //функция, отвечающая за появление большой картинки function showAxel(e:MouseEvent):void { var temp:MovieClip = new mc_mid_axel; temp.x=10; temp.y=180; addChild(temp); } //слушатель того, что мышку убрали txt.b_axel.addEventListener(MouseEvent.MOUSE_OUT, hideAxel); //функция "убрать" картинку function hideAxel(e:MouseEvent):void { //что же тут написать? } спасибо. |
|
|||||
|
Регистрация: Sep 2008
Сообщений: 158
|
Последний раз редактировалось veles2008; 10.04.2010 в 20:03. |
|
|||||
|
Регистрация: Mar 2010
Сообщений: 10
|
так не получается... пишет1120: Access of undefined property temp.
помнится, в с++ нельзя было обращаться к глобальной переменной из функции напрямую, а надо было переходить по адресу. Как это осуществляется здесь? Если вынести переменную temp за пределы первой функции, то работает. всё - таки интересно, как обратиться к переменной, созданной в другой функции. Если какие либо статусы доступа у переменных(ну там global, private, или что то такое) Последний раз редактировалось POzONe; 10.04.2010 в 20:10. |
|
|||||
|
Негуру
администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
|
//слушатель наведения мышки txt.b_axel.addEventListener(MouseEvent.MOUSE_OVER, showAxel); var temp:MovieClip //функция, отвечающая за появление большой картинки function showAxel(e:MouseEvent):void { temp = new mc_mid_axel; temp.x=10; temp.y=180; addChild(temp); } //слушатель того, что мышку убрали txt.b_axel.addEventListener(MouseEvent.MOUSE_OUT, hideAxel); //функция "убрать" картинку function hideAxel(e:MouseEvent):void { removeChild(temp); } У вас temp это локальная переменная. После выполнения функции она убивается. |
|
|||||
|
Регистрация: Sep 2008
Сообщений: 158
|
никак
|
|
|||||
|
Регистрация: Jun 2009
Адрес: Москва
Сообщений: 170
|
можно так попробовать, но это изврат какой-то.
Последний раз редактировалось mickfallout; 11.04.2010 в 14:33. |
|
|||||
|
Регистрация: Jun 2009
Адрес: Москва
Сообщений: 170
|
Согласен. Хотя вопрос стоял как делать, а не почему не надо делать так вообще =) Да и я предупредил что это извращение какое-то.
а такой вариант подходит? package { import flash.display.MovieClip; import flash.events.*; public class Main extends MovieClip { public function Main() { super(); var localMovieClipName:String = "local movie clip"; var localMovieClip:MovieClip = new MovieClip(); addChild(localMovieClip); trace(localMovieClipName + " added to stage"); var a:Function = function(event:Event):void { doSomething(event,localMovieClipName,localMovieClip,a) }; addEventListener(Event.ENTER_FRAME, a); } public function doSomething(event:Event, name:String,movieClip:MovieClip,handler:Function):void { removeChild(movieClip); trace(name + " removed from stage"); removeEventListener(Event.ENTER_FRAME, handler); } } } |
|
|||||
|
Регистрация: Jun 2009
Адрес: Москва
Сообщений: 170
|
Нет, это конкурс "Мы ищем ответ на заданный в теме топика вопрос". Вопрос если его перефразировать и обобщить звучит как "Как в функции подписать обработчик события работающий с значениями локальных для функции переменных". Мне кажется вопрос не глупый и не бесполезный, и найти на него ответ стоит =)
P.S. Я понимаю что для того что хочет автор темы такие сложности не нужны, но может быть он просто привёл плохой пример =) P.P.S. Не заметил что Вы админ. В таком случае пожалуй не буду спорить о том стоит ли обсуждать данный вопрос =) |
![]() |
![]() |
Часовой пояс GMT +4, время: 10:46. |
|
|
« Предыдущая тема | Следующая тема » |
|
|