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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 05.08.2008, 18:39
Dr.XxX вне форума Посмотреть профиль Отправить личное сообщение для Dr.XxX Найти все сообщения от Dr.XxX
  № 1  
Ответить с цитированием
Dr.XxX

Регистрация: Dec 2006
Сообщений: 207
По умолчанию больше одного Delegate для MovieClip

Можно ли создавать для одного мувиклипа, к примеру, 2 делегата ?

Старый 05.08.2008, 18:56
qazwsx вне форума Посмотреть профиль Найти все сообщения от qazwsx
  № 2  
Ответить с цитированием
qazwsx
Banned

Регистрация: Mar 2008
Адрес: Krasnoyarsk
Сообщений: 587
Что? Если ты имел ввиду повешать на 1 "Эвент" 2 действия. То да можно но не на прямую....

Старый 05.08.2008, 19:21
Dr.XxX вне форума Посмотреть профиль Отправить личное сообщение для Dr.XxX Найти все сообщения от Dr.XxX
  № 3  
Ответить с цитированием
Dr.XxX

Регистрация: Dec 2006
Сообщений: 207
Я имел ввиду в первом классе у меня создаётся делегат для _level0.myMovieClip
Код:
_mClip.onEnterFrame = Delegate.create(this, onMove);
Во втором классе тоже для _level0.myMovieClip
Код:
_mClip.onEnterFrame = Delegate.create(this, onPos);
А работает onEnterFrame, только в первом классе.

Старый 06.08.2008, 04:34
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 4  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Делегатов можно создать сколько угодно, а вот ЕнтерФрейм, он один =) Для такой задачи существуют слушатели - т.е. возможность подписаться на событие. В случае с ЕнтерФреймом проще всего использовать Твин, но можно и самому сделать, чтобы не тянуть лишние методы.
__________________
Hell is the possibility of sanity

Старый 10.08.2008, 13:58
Dr.XxX вне форума Посмотреть профиль Отправить личное сообщение для Dr.XxX Найти все сообщения от Dr.XxX
  № 5  
Ответить с цитированием
Dr.XxX

Регистрация: Dec 2006
Сообщений: 207
Не могли бы объяснить по подробнее, как это реализовать.

Старый 11.08.2008, 05:08
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 6  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Код:
import mx.transitions.Tween;
import mx.transitions.easing.None;

function SomeUnrelatedObject()
{
	this.onMotionChanged = function():Void
	{
		trace(this.toString());
	}
	this.toString = function():String
	{
		return "[I am SomeUnrelatedObject]";
	}
}
var someUnrelatedObject = new SomeUnrelatedObject();
function onMotionChanged():Void
{
	trace("I am this");
}
var t:Tween = new Tween({i:0}, "i", None.easeNone, 0, 100, 1, true);
t.stop();
t.looping = true;
t.addListener(this);
t.addListener(someUnrelatedObject);
t.start();
__________________
Hell is the possibility of sanity

Старый 13.08.2008, 00:32
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 7  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Код:
import mx.utils.Delegate;

/**
* Pulser class. Do not instantiate, use static Pulser.getInstance()
* instead. Provides AsBroadcaster style ability for any object to recieve
* playback updates.
* @author wvxvw
*/
class Pulser 
{
	/**
	 * String. "pulserPlay".
	 */
	public static var PULSER_PLAY:String = "pulserPlay";
	
	/**
	 * String. "pulserStop".
	 */
	public static var PULSER_STOP:String = "pulserStop";
	
	private static var _instance:Pulser;
	
	/**
	 * AsBroadcaster style decoration.
	 * Will be overriden by AsBroadcaster.initialize().
	 */
	public var addListener:Function;
	
	/**
	 * AsBroadcaster style decoration.
	 * Will be overriden by AsBroadcaster.initialize().
	 */
	public var removeListener:Function;
	
	/**
	 * AsBroadcaster style decoration.
	 * Will be overriden by AsBroadcaster.initialize().
	 */
	public var broadcastMessage:Function;
	
	private var _clip:MovieClip;
	
	private function Pulser() 
	{
		AsBroadcaster.initialize(this);
		_clip = _root.createEmptyMovieClip("Pulse_clip", 1234);
	}
	
	/**
	 * Starts the playback.
	 */
	public function play():Void
	{
		_clip.onEnterFrame = Delegate.create(this, enterfameDelegate);
	}
	
	/**
	 * Pauses the playback.
	 */
	public function stop():Void
	{
		delete _clip.onEnterFrame;
	}
	
	private function enterfameDelegate():Void
	{
		broadcastMessage(PULSER_PLAY);
	}

	/**
	 * Returns link to Pulse instance.
	 * @return Pulser.
	 */
	public static function getInstance():Pulser
	{
		if (!_instance)_instance = new Pulser();
		return _instance;
	}
}
Код:
import Pulser;

class Main
{
	public static var test0:Object;
	public static var test1:Object;
	
	public static function main():Void
	{
		test0 = { i:0 };
		test1 = { j:0 };
		test0.toString = function():String { return "test0 i=\"" + this.i + "\"" };
		test1.toString = function():String { return "test1 j=\"" + this.j + "\"" };
		test0[Pulser.PULSER_PLAY] = function():Void
		{
			this.i++;
			trace(this)
		}
		test1[Pulser.PULSER_PLAY] = function():Void
		{
			this.j++;
			trace(this)
		}
		Pulser.getInstance().addListener(test0);
		Pulser.getInstance().addListener(test1);
		Pulser.getInstance().play();
	}
}
Конечно, писать так, как в тесте не нужно, это именно тест, просто чтобы запись была короче.
__________________
Hell is the possibility of sanity


Последний раз редактировалось wvxvw; 13.08.2008 в 00:35.
Создать новую тему Ответ Часовой пояс GMT +4, время: 23:09.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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