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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 10.04.2010, 19:51
POzONe вне форума Посмотреть профиль Отправить личное сообщение для POzONe Найти все сообщения от POzONe
  № 1  
Ответить с цитированием
POzONe

Регистрация: Mar 2010
Сообщений: 10
По умолчанию Удалить объект со сцены

захотелось сделать следующее: при наведении мышки на маленькую картинку рядом появляется такая же большая. Если увести мышку в другое место - большая картинка исчезает.
Помогите, пожалуйста, с исчезновением картинки.

Код AS3:
//слушатель наведения мышки
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
{
  //что же тут написать?
}

спасибо.

Старый 10.04.2010, 20:01
veles2008 вне форума Посмотреть профиль Отправить личное сообщение для veles2008 Найти все сообщения от veles2008
  № 2  
Ответить с цитированием
veles2008
 
Аватар для veles2008

Регистрация: Sep 2008
Сообщений: 158
Код AS3:
removeChild(temp);


Последний раз редактировалось veles2008; 10.04.2010 в 20:03.
Старый 10.04.2010, 20:07
POzONe вне форума Посмотреть профиль Отправить личное сообщение для POzONe Найти все сообщения от POzONe
  № 3  
Ответить с цитированием
POzONe

Регистрация: Mar 2010
Сообщений: 10
так не получается... пишет1120: Access of undefined property temp.
помнится, в с++ нельзя было обращаться к глобальной переменной из функции напрямую, а надо было переходить по адресу.
Как это осуществляется здесь?

Если вынести переменную temp за пределы первой функции, то работает. всё - таки интересно, как обратиться к переменной, созданной в другой функции. Если какие либо статусы доступа у переменных(ну там global, private, или что то такое)


Последний раз редактировалось POzONe; 10.04.2010 в 20:10.
Старый 10.04.2010, 20:11
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 4  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Код AS3:
//слушатель наведения мышки
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);
}
Добавлено через 1 минуту
У вас temp это локальная переменная. После выполнения функции она убивается.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 10.04.2010, 20:42
veles2008 вне форума Посмотреть профиль Отправить личное сообщение для veles2008 Найти все сообщения от veles2008
  № 5  
Ответить с цитированием
veles2008
 
Аватар для veles2008

Регистрация: Sep 2008
Сообщений: 158
Цитата:
Сообщение от POzONe Посмотреть сообщение
интересно, как обратиться к переменной, созданной в другой функции. Если какие либо статусы доступа у переменных(ну там global, private, или что то такое)
никак

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

Регистрация: Jun 2009
Адрес: Москва
Сообщений: 170
можно так попробовать, но это изврат какой-то.
Код AS3:
function showAxel(e:MouseEvent):void
{
          var temp:MovieClip = new mc_mid_axel;
          temp.x=10;
          temp.y=180;
          addChild(temp);
          addEventListener(MouseEvent.MOUSE_OUT,
          function(event:MouseEvent):void 
          {
               if (getChildByName(temp) != null) 
               {
                   removeChild(temp);  
               }
           });
}


Последний раз редактировалось mickfallout; 11.04.2010 в 14:33.
Старый 11.04.2010, 14:33
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 7  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Так и пробывать не надо. Как вы собираетесь потом отписываться? И что будет после десятка таких in/out?
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 11.04.2010, 15:09
mickfallout вне форума Посмотреть профиль Отправить личное сообщение для mickfallout Найти все сообщения от mickfallout
  № 8  
Ответить с цитированием
mickfallout
 
Аватар для mickfallout

Регистрация: Jun 2009
Адрес: Москва
Сообщений: 170
Согласен. Хотя вопрос стоял как делать, а не почему не надо делать так вообще =) Да и я предупредил что это извращение какое-то.

а такой вариант подходит?
Код AS3:
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);
		}
	}
}

Старый 11.04.2010, 15:29
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 9  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Цитата:
а такой вариант подходит?
Это конкурс "Мы ищем сложные пути!"?
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 11.04.2010, 15:38
mickfallout вне форума Посмотреть профиль Отправить личное сообщение для mickfallout Найти все сообщения от mickfallout
  № 10  
Ответить с цитированием
mickfallout
 
Аватар для mickfallout

Регистрация: Jun 2009
Адрес: Москва
Сообщений: 170
Нет, это конкурс "Мы ищем ответ на заданный в теме топика вопрос". Вопрос если его перефразировать и обобщить звучит как "Как в функции подписать обработчик события работающий с значениями локальных для функции переменных". Мне кажется вопрос не глупый и не бесполезный, и найти на него ответ стоит =)
P.S. Я понимаю что для того что хочет автор темы такие сложности не нужны, но может быть он просто привёл плохой пример =)
P.P.S. Не заметил что Вы админ. В таком случае пожалуй не буду спорить о том стоит ли обсуждать данный вопрос =)

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

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

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


 


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


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