Пользовательские трансляции событий в AS3? - PullRequest
3 голосов
/ 15 марта 2010

В ActionScript 3 большинство событий используют модель захвата / цели / пузыря, которая очень популярна в настоящее время:

Когда событие происходит, оно проходит через три фазы потока событий:фаза захвата, которая течет от вершины иерархии списка отображения к узлу непосредственно перед целевым узлом;целевая фаза, которая содержит целевой узел;и фаза барботирования, которая течет от узла, следующего за целевым узлом, обратно в иерархию списка отображения.

Однако некоторые события, такие как событие enterFrame класса Sprite, не захватывают ИЛИпузырь - вы должны подписаться непосредственно на цель, чтобы обнаружить событие.Документация называет их «вещательными событиями».Я предполагаю, что это из соображений производительности, так как эти события будут запускаться постоянно для каждого спрайта на сцене, и вам не нужно иметь дело со всем этим избыточным распространением событий.

Я хочу отправить свою собственную трансляциюСобытия.Я знаю, что вы можете предотвратить всплытие события (Event.bubbles = false), но вы также можете избавиться от захвата?

Ответы [ 3 ]

1 голос
/ 30 декабря 2011

Ответ от back2dos неверный . На самом деле свойство Event.bubbles не влияет на фазу захвата.

public class CaptureTextInput extends Sprite
{
  function CaptureTextInput()
  {
    var t:TextField = new TextField();
    t.type = TextFieldType.INPUT;
    addEventListener(TextEvent.TEXT_INPUT, function(event:TextEvent):Void
    {
      trace("captured"); // This event will be triggered properly when you type in text field.
    }, true);
    addChild(t);
  }
}
0 голосов
/ 10 апреля 2015

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

0 голосов
/ 15 марта 2010

пузырек и фаза захвата являются частями всего пузырькового механизма. если bubbles установлено на false, оба не существуют.

...