![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|
|
|||||
|
Регистрация: Dec 2006
Сообщений: 207
|
Можно ли создавать для одного мувиклипа, к примеру, 2 делегата ?
|
|
|||||
|
Banned
Регистрация: Mar 2008
Адрес: Krasnoyarsk
Сообщений: 587
|
Что? Если ты имел ввиду повешать на 1 "Эвент" 2 действия. То да можно но не на прямую....
|
|
|||||
|
Регистрация: Dec 2006
Сообщений: 207
|
Я имел ввиду в первом классе у меня создаётся делегат для _level0.myMovieClip
Во втором классе тоже для _level0.myMovieClip А работает onEnterFrame, только в первом классе. |
|
|||||
|
Modus ponens
|
Делегатов можно создать сколько угодно, а вот ЕнтерФрейм, он один =) Для такой задачи существуют слушатели - т.е. возможность подписаться на событие. В случае с ЕнтерФреймом проще всего использовать Твин, но можно и самому сделать, чтобы не тянуть лишние методы.
__________________
Hell is the possibility of sanity |
|
|||||
|
Регистрация: Dec 2006
Сообщений: 207
|
Не могли бы объяснить по подробнее, как это реализовать.
|
|
|||||
|
Modus ponens
|
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 |
|
|||||
|
Modus ponens
|
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. |
|
|
« Предыдущая тема | Следующая тема » |
|
|