Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   срабатывание события при достижении определенного фрейма (http://www.flasher.ru/forum/showthread.php?t=102689)

Peregrin 19.10.2007 12:25

срабатывание события при достижении определенного фрейма
 
есть мовиелип, который описан в классе Animation и главный таймлайн которого состоит из нескольких фреймов (анимации).
Можно ли как-то сказать классу Animation, чтобы он вызвал определенную функцию при достижении определенного кадра, не используя при этом такие обработчики, как например onEnterFrame. Т.е. мне нужен аналог тому, как, если бы я взял и написал в таймлайне этого мовиклипа, в кадре например 10-ом, функцию stop();.
Просто после появления AS3 стало как-то западло чтоли :) писать код в таймлайне, хочется чтоб весь код был прописан в классах

Nirth 19.10.2007 12:30

Ключевые слова:
MovieClip.currentFrame
EventDispatcher.addEventListener()
Event.ENTER_FRAME event

Peregrin 19.10.2007 13:42

на форуме нет ответа на мой вопрос, и эти ключевые слова тоже не помогут. Я же поэтому и спрашиваю, как это сделать без таких условий как if (currentFrame == x) и без обработчиков таких событий как ENTER_FRAME.
Мне нужно привязать определенный скрипт к определенному кадру. Ведь когда я просто пишу скрипт в одном из кадров таймлайна мовиклипа, мовиклип же не осуществляет проверку на то, является ли текущий кадр тем кадром, в котором был написан скрипт? Дойдя до очередного кадра он просто натыкается на этот скрипт и исполняет его.
В адобовской документации иногда употребляется слово Timeline class, но самого описания этого класса там нету. Также есть новый класс Keyframe, но то, что написано в документации про этот класс не дает ответа на мой вопрос.

Nirth 19.10.2007 13:44

Цитата:

на форуме нет ответа на мой вопрос, и эти ключевые слова тоже не помогут. Я же поэтому и спрашиваю, как это сделать без таких условий как if (currentFrame == x) и без обработчиков таких событий как ENTER_FRAME.
Какой то бред вы городите.
Удачи вам.

etc 19.10.2007 14:02

Код:

this.mc.addFrameScript(9, this.mcStop);

private function mcStop():void {
    this.mc.stop();
}

На 10-ом кадре остановится.

Peregrin 19.10.2007 14:16

Цитата:

Какой то бред вы городите
на счет бреда ты права, тема то на самом деле обсуждалась. А вот слова твои ни к черту :). Единственное слово, которое нужно было ввести - это timeline.
Просто плохо искал, обещаю исправиться :)

спасибо __etc

Nirth 19.10.2007 14:23

2 __etc а они документировали эти методы кстати?

etc 19.10.2007 14:24

Нет, не документировали.

$mival 19.10.2007 16:21

В статье г-на Горбатова описан этот недокументированный метод здесь (от Сентябрь 26, 2007)

7thsky™ 19.10.2007 16:50

Цитата:

Сообщение от Nirth
2 __etc а они документировали эти методы кстати?

Давид, а ты можно подумать не знал об этом методе http://orangeflash.eu/?p=5
:)


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

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