2010-05-28 4 views
1

Я использую словарь в ActionScript в качестве очереди, вроде, все еще читаю большую часть времени в качестве ассоциативного контейнера, но мне нужно один раз, чтобы цикл выполнялся через весь словарь , например, для (var key: String в очереди). Внутри этого цикла я выполняю некоторые действия над элементом, а затем вызываю delete на этом ключе.Получение ключа в словаре ActionScript

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

Решение, которое, как я думал, состоит в том, чтобы добавить разрыв в цикл, так как for .. in автоматически выберет следующий ключ, но это будет цикл, который всегда выполняется один раз, просто чтобы получить следующий ключ. Это звучит немного интуитивно.

Надеюсь, что моя проблема имеет смысл, и я действительно ищу лучшие идеи, чем то, что у меня есть сейчас. Спасибо за вашу помощь!

Rudy

+0

Чтобы упростить, мне нужно перебирать словарь. До сих пор я использую для ..., но проблема в том, что мне нужно дождаться события EventEstener, которое произойдет до обработки второго элемента. Вопрос в том, как получить «следующий ключ», как это похоже на ... в но без использования для ... в пожалуйста? Спасибо. – Rudy

ответ

0

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

Я думаю, мой главный вопрос: почему вы не можете делать то, что хотите сделать со списком? если вам нужны 2 значения (например, строки), тогда просто создайте список объектов :)

+0

Спасибо за ваш ответ. Что происходит, я храню идентификатор, который ссылается на объект. В большинстве случаев я передаю идентификатор и просматриваю объект (поэтому я действительно использую его как ассоциативный контейнер). Но порой мне нужно итерации, поэтому она становится действительно очередью/массивом, и она должна быть в порядке, в котором элементы были порядка. Чтобы добавить еще одну сложность, ключи, конечно, уникальны, они увеличивают целые числа, начиная с 0, но некоторые из этих записей могут быть удалены. У нас может быть элемент с ключами «0», «10», «11» и т. Д. Это может потенциально замедлить для меня повторение – Rudy

+0

с помощью целых чисел. Поэтому, чтобы сделать его простым, ключ представляет собой уникальное целочисленное значение, которое используется для поиска объекта, но также является частью объекта. Надеюсь, это объясняет, почему я не пользуюсь списком. – Rudy

+0

я вижу. вы всегда можете сохранить список идентификаторов, если вам действительно нужно. в противном случае я думаю, что вы правы, вам нужно сделать это для ... в котором используется только один раз :) – oedo

Смежные вопросы