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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 02.11.2005, 09:50
  № 1  
Ответить с цитированием
ZooMer
Guest

Сообщений: n/a
По умолчанию Как всегда HELP!! Вопрос по поводу MovieClip'ов

Проблема вот в чем:
Есть объект, который содержит в себе еще кучу объектов. В частности другой, который должен реагировать на наведение.
Код первого:

onClipEvent (mouseDown) {
this.onPress = function () {
startDrag (this);
s=1;
}

}
onClipEvent (mouseUp) {
stopDrag ();
s=2;
}
onClipEvent (enterFrame) {
if (s==1 and (this._alpha <= 100 or this._alpha > 100) and this._alpha > 50) {
this._alpha -= 3;
}
if (s==2 and this._alpha < 100 and this._alpha >= 40) {
this._alpha += 3;
}

this.useHandCursor = false;

}

Код второго (вложен на 1 уровень вниз, относительно первого):
onClipEvent (enterFrame) {
this.onRollOver = function () {
trace ("onRollOver called");
}
this.onRollOut = function () {
trace ("onRollOut called");
}
}

Глюк в том, что стоит кликнуть в любой области экрана, и после этого trace не выводится.
Работает только перетаскивание (тут без косяков).
Я предпологаю, что это вызвано тем, что после команды this.onPress = function () объект конвертируется в кнопку, а в кнопке заменяются имена на какие-то другие.
Есть ли какие-либо операторы, позоляющие конвертировать тип объекта? Или же по-другому реагировать на Press?
Помогите пожалуйста - со вчерашнего дня бьюсь... Уже всю пачку скурил.

Старый 02.11.2005, 10:36
maelstorm вне форума Посмотреть профиль Отправить личное сообщение для maelstorm Найти все сообщения от maelstorm
  № 2  
Ответить с цитированием
maelstorm

Регистрация: Jun 2005
Сообщений: 40
попробовал. Действительно при использовании события onPress клип, по всей видимости, получает свойства кнопки, а внутрь нее обратиться нельзя.

вот этот код рабочий:
Код:
var s:Number = null;
outter.onMouseDown = function() {
	if (this.hitTest(_root._xmouse, _root._ymouse, false)) {
		startDrag(this);
		s = 1;
	}
};
outter.onMouseUp = function() {
	stopDrag();
	s = 2;
};
outter.onEnterFrame = function() {
	if (s == 1 and (this._alpha <= 100 or this._alpha > 100) and this._alpha > 50) {
		this._alpha -= 3;
	}
	if (s == 2 and this._alpha < 100 and this._alpha >= 40) {
		this._alpha += 3;
	}
};
this.outter.inner.onRollOver = function() {
	trace("onRollOver called");
};
this.outter.inner.onRollOut = function() {
	trace("onRollOut called");
};
соответственно: outter - внешний клип, inner - вложенный

Старый 02.11.2005, 11:58
  № 3  
Ответить с цитированием
ZooMer
Guest

Сообщений: n/a
Спасибо....но это не совсем то....у меня объект круглый, а вот эта строчка "this.hitTest(_root._xmouse, _root._ymouse, false)" делает рабочую область квадратной.
Этот способ приходил мне в голову, но убедившись, что он мне не нужен, я отбросил его.
Но все равно спасибо...
Может, еще что-то можно сделать?
Что если каждый кадр говорить кнопке, что она MovieClip? Или как-нить сделать так, чтобы она вообще не конвертировалась? Вот только как?

Старый 02.11.2005, 12:35
Kan вне форума Посмотреть профиль Отправить личное сообщение для Kan Найти все сообщения от Kan
  № 4  
Ответить с цитированием
Kan

Регистрация: Oct 2005
Сообщений: 18
this.hitTest(_root._xmouse, _root._ymouse, true) - обнаружение конфликта будет происходить только на самом мувике

Старый 02.11.2005, 13:32
  № 5  
Ответить с цитированием
ZooMer
Guest

Сообщений: n/a
Спасибо, конечно... Но это опять не то... _root._xmouse, _root._ymouse устанавливает все те же квадратные рамки. Только эффект уже другой. Если кликнуть рядом с рабочей областью клипа, на другой такой же - получается, что теряют прозрачность оба.
Все равно спасибо.... Если ничего другого до конца дня не предложат - буду использовать этот метод.

Старый 02.11.2005, 14:29
7thsky™ вне форума Посмотреть профиль Отправить личное сообщение для 7thsky™ Найти все сообщения от 7thsky™
  № 6  
Ответить с цитированием
7thsky™
Flash Aксакал
 
Аватар для 7thsky™

Регистрация: Jun 2005
Сообщений: 636
чего то вы такого не понятного тут написали.
Вложения
Тип файла: zip test.zip (5.8 Кб, 16 просмотров)


Последний раз редактировалось 7thsky™; 02.11.2005 в 14:31.
Старый 02.11.2005, 14:26
Kan вне форума Посмотреть профиль Отправить личное сообщение для Kan Найти все сообщения от Kan
  № 7  
Ответить с цитированием
Kan

Регистрация: Oct 2005
Сообщений: 18
Все работает

на внешнем мувике:
onClipEvent (mouseDown) {
if(this.hitTest(_root._xmouse,_root._ymouse, true)){
startDrag (this);
s=1;
}
}

onClipEvent (mouseUp) {
stopDrag ();
s=2;
}
onClipEvent (enterFrame) {
if (s==1 and (this._alpha <= 100 or this._alpha > 100) and this._alpha > 50) {
this._alpha -= 3;
}
if (s==2 and this._alpha < 100 and this._alpha >= 40) {
this._alpha += 3;
}

}

На внутреннем мувике:
on(rollOver){trace ("onRollOver called");}
on(rollOut){trace ("onRollOut called");}

Старый 02.11.2005, 14:49
  № 8  
Ответить с цитированием
ZooMer
Guest

Сообщений: n/a
Блин! Да тупость получается.. Создай 2 круглых объекта и наложи один поверх другого, потом скопируй в каждый из них этот код. Публикуй. попробуй пошевелить один. В том месте, где его перекрывает второй... Шевелится только один, а альфу теряют оба. Вот так.

Старый 02.11.2005, 15:19
7thsky™ вне форума Посмотреть профиль Отправить личное сообщение для 7thsky™ Найти все сообщения от 7thsky™
  № 9  
Ответить с цитированием
7thsky™
Flash Aксакал
 
Аватар для 7thsky™

Регистрация: Jun 2005
Сообщений: 636
ты не блинкай, ты лучше нормально объясни что у тебя не получается, потому что по первому посту ты вообще другое хотел

Старый 02.11.2005, 15:34
  № 10  
Ответить с цитированием
ZooMer
Guest

Сообщений: n/a
Цитата:
Сообщение от 7thsky™
ты не блинкай, ты лучше нормально объясни что у тебя не получается, потому что по первому посту ты вообще другое хотел
Вообще-то мне показалось это альтернативой.
Надо сделать 15 шариков с текстом внутри, которые будут передвигаться пользователем по экрану. При наведении на сам текст (на самом деле там просто прозрачная обводка целого текста, чтобы удобнее было нажимать) происходит переход на другой кадр клипа с текстом (с понтом подсветка). При нажатии на текст происходит getURL на страничку....
Нужно что-то что позволит работать не с областью объекта, а самим объектом, не превращая его в батон, поскольку с ним работать вообще невозможно - там выходит кнопка в кнопке - видимо он считает это абсурдом.

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

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

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


 


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


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