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

Вернуться   Форум Flasher.ru > Архив Flasher.ru > Flash > Action script 2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 27.10.2004, 12:53
Proman вне форума Посмотреть профиль Отправить личное сообщение для Proman Найти все сообщения от Proman
  № 11  
Proman
 
Аватар для Proman

Регистрация: Jul 2002
Адрес: Запорожье
Сообщений: 56
Отправить сообщение для Proman с помощью ICQ
Ты видимо не с "тем" классом работаеш.
Флэш при запуске создает копию директории Classes в
Код:
C:\Documents and Settings\Your_profile\Local Settings\
Application Data\Macromedia\Flash MX 2004\en\Configuration\Classes
поэтому если ты изменяеш классы которые находяться в директории в которой установлен флэш, то изменения ты увидиш только после его перезапуска, вот и причина почему код не работает, не работает а после перезапуска флэша начинает работать.
__________________
Don't use the Force, Luke - try to THINK!

Старый 27.10.2004, 13:12
Manowar1 вне форума Посмотреть профиль Отправить личное сообщение для Manowar1 Найти все сообщения от Manowar1
  № 12  
Manowar1

Регистрация: Jan 2002
Адрес: Kharkov
Сообщений: 57
вот блин!!

Век живи век учись, спасибо тебе большое!

Старый 29.10.2004, 18:17
Nirth вне форума Посмотреть профиль Отправить личное сообщение для Nirth Посетить домашнюю страницу Nirth Найти все сообщения от Nirth
  № 13  
Nirth
4AM Games
 
Аватар для Nirth

блогер
Регистрация: Nov 2002
Адрес: Sofia
Сообщений: 6,264
Записей в блоге: 1
Отправить сообщение для Nirth с помощью ICQ Отправить сообщение для Nirth с помощью AIM Отправить сообщение для Nirth с помощью MSN Отправить сообщение для Nirth с помощью Yahoo Отправить сообщение для Nirth с помощью Skype™
если не трудно то объясните пожалуйста, по подробнее как добавить событие к классу, скажем есть класс XMC к нему нужно добавить событие onDoubleClick , как этого можно добиться?
спасибо заранее

Старый 29.10.2004, 19:37
Manowar1 вне форума Посмотреть профиль Отправить личное сообщение для Manowar1 Найти все сообщения от Manowar1
  № 14  
Manowar1

Регистрация: Jan 2002
Адрес: Kharkov
Сообщений: 57
могу предложить тебе такой вариант
Класс для отслеживания двойного нажатия testEvent.as

Код:
class testEvent{
	static var numClicks:Number = 0;
	private var curNumTakts:Number = 0;
	function testEvent(){
	}
	function onMouseDown(){
		numClicks ++;

		if (numClicks == 2){
			numClicks = 0;
			trace('Double Click');
		}
	}
	function unsetInterval(){
		numClicks = 0;
	}
}
а это создание объекта и его инициализация для работы
Код:
te = new testEvent();
setInterval(te.unsetInterval, 300);
Mouse.addListener(te);

Но это в том случае если тебе нужно просто отследить двойное нажатие, если же тебе нужно чтоб класс генерил своё событие по двойному щелчку, то trace нужно заменить на вышесказанное Proman' ом по поводу eventDispatcher

Старый 29.10.2004, 19:58
Nirth вне форума Посмотреть профиль Отправить личное сообщение для Nirth Посетить домашнюю страницу Nirth Найти все сообщения от Nirth
  № 15  
Nirth
4AM Games
 
Аватар для Nirth

блогер
Регистрация: Nov 2002
Адрес: Sofia
Сообщений: 6,264
Записей в блоге: 1
Отправить сообщение для Nirth с помощью ICQ Отправить сообщение для Nirth с помощью AIM Отправить сообщение для Nirth с помощью MSN Отправить сообщение для Nirth с помощью Yahoo Отправить сообщение для Nirth с помощью Skype™
Мановар, да вот я читаю и пытаюсь так сказать вникнуть, двойной клик это только пример так сказать, я щас использую похожую систему с твоей( только не создаю для нее отдельного класса, я просто отслеживаю когда менюшка находиться в зоне видимости а когда оно невидимое). но хотелось бы создать функцию которая работала как буилдин события(типа тех же рол овер, интер фрейм) а в то что написал Проман,я еще не врубился=(

Старый 29.10.2004, 20:22
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 16  
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
вариант:
Код:
import mx.events.EventDispatcher
class XMC {
	var md:Number
	var dt:Number
	
	function XMC(t:Number){
		mx.events.EventDispatcher.initialize(this)
		md=getTimer()
		dt=t
		var r=this
		Mouse.addListener(r)
		r.onMouseDown=function(){
			if(getTimer()-md<dt){
				var eventObject:Object = {target:r, type:'onDoubleClick'};
				dispatchEvent(eventObject);
			}
			else md=getTimer()
		}
	}
	function dispatchEvent() {
	}
	function addEventListener() {
	}
	function removeEventListener() {
	}
}
в кадре:
Код:
var cd:XMC = new XMC(300);
var listener:Object = new Object; 
listener.onDoubleClick = function(event) {
	trace("double click");
}
cd.addEventListener("onDoubleClick",listener);


Последний раз редактировалось silin; 29.10.2004 в 20:25.
Старый 29.10.2004, 21:17
llllllllll вне форума Посмотреть профиль Отправить личное сообщение для llllllllll Найти все сообщения от llllllllll
  № 17  
llllllllll

Регистрация: Feb 2001
Сообщений: 1,893
Извращенцы, нафиг вам EventDispatchet? Я понимаю еще сложнейший проект, и то люди переписывают этот класс потому что у ММ там лажа полная, AsBroadcaster или mx.transitions.BroadcasterMX - по уши хватит

Старый 29.10.2004, 23:25
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 18  
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
полностью согласен с забором, в этом раскладе класс на двойной клик выглядит
Код:
class DblClick extends MovieClip{
	static var bc:Object
	static var dt:Number=300
	private var md:Number
	
	function DblClick(){
		AsBroadcaster.initialize(bc={})
		bc.addListener(this)
		Mouse.addListener(bc)
		bc.onMouseDown=function(){
			if(getTimer()-md<dt)this.broadcastMessage("onDoubleClick")
			else md=getTimer()
		}
	}
}
а использование
mc.onDoubleClick=function(){trace("dbl")}//mc связан с классом с помощью Linkage

зы:однако ж раз диспатчер существует надо и его пробывать, хотя б для того что бы разобраться и сравнить


Последний раз редактировалось silin; 29.10.2004 в 23:32.
Старый 30.10.2004, 04:32
llllllllll вне форума Посмотреть профиль Отправить личное сообщение для llllllllll Найти все сообщения от llllllllll
  № 19  
llllllllll

Регистрация: Feb 2001
Сообщений: 1,893
Что касается диспатчера - это просто расширенная событийная модель, вот и все ...

Код:
	import mx.events.EventDispatcher;

	// ************************************************
	
	function onEvent():Void
	{
		trace("onEvent");
	}

	var listener:Object = new Object();
	
	listener.event = function():Void
	{
		trace("listener.event");
	}
	
	listener.handleEvent = function(event:Object):Void
	{
		switch(event.type)
		{
			case("event"):
				trace("listener.handleEvent");
				break;
		}
	}

	var dispatcher:Object = new Object();
		
	EventDispatcher.initialize(dispatcher);

	dispatcher.addEventListener("event", onEvent);
	dispatcher.addEventListener("event", listener);
	
	dispatcher.eventHandler = function():Void
	{
		trace("Dispatcher.eventHandler");
	}
	
	// ************************************************
	
	dispatcher.dispatchEvent({type:"event"});
Где-то она полезна, где-то излишни ...

Что касается MovieClip.onDblClick - опять же зачем городить?
Ну ни кто ведь не отменял прототипы, и та же ММ их использует в своих классах ... во всяком случае, в, примерно, таком виде ...

Код:
class mx.Extensions.MovieClipExtensions
{
	static function addDrawingAPI():Void
	{
		MovieClip.prototype.drawCircle = function (x:Number, y:Number, radius:Number):Void
		{
			// ...
		}
	}	
}

// и далее когда необходимо подключаем это ...

import mx.Extensions.MovieClipExtensions;
MovieClipExtensions.addDrawingAPI();

Да есть момент, что MovieClip - это dynamic class, но не важно, кто мешает для того же String, залезть в String.as и добавить либо ключевое слово dynamic, или зарезервировать местечко для своего метода, типа:

function hello():Void;

И далее в подключаемом StringExtension уже его определить ...
Кстати если поставить себе Central SDK - то можно увидеть как обновится тот же String.as (function replace( re:String, repl:String ):String; // Central API)

Вобщем будте проще

Старый 30.10.2004, 04:37
llllllllll вне форума Посмотреть профиль Отправить личное сообщение для llllllllll Найти все сообщения от llllllllll
  № 20  
llllllllll

Регистрация: Feb 2001
Сообщений: 1,893
Smile про дабл клик

Про onDoubleClick - это я к тому, что Ноксовский вариант ничуть не устарел

Что onDoubleClick должен быть у Mouse, а не у какой-то там class SDAA345klklk35lbjj ...

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

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

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


 


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


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