Показать сообщение отдельно
Старый 30.08.2005, 06:16
Iv вне форума Посмотреть профиль Отправить личное сообщение для Iv Посетить домашнюю страницу Iv Найти все сообщения от Iv
  № 9  
Ответить с цитированием
Iv
 
Аватар для Iv

Регистрация: Apr 2001
Адрес: Moscow
Сообщений: 1,475
я писал на ruflash:

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

написал JSFL для автоматической раздачи.
это мой первый опыт, сильно не ругайте

как юзать:

1. выделяем любой кадр в любом слое
2. вызываем команду add_anchors

в самый верх добавятся два слоя: слой якорей и слой скриптов.
якоря будут поименованы как a1, a2 и т.д. в соответствии с номерами
кадров.
в каждый кадр встанет скрипт вида
this._anchor=номер кадра

соответственно, если понадобится обработчик события перехода на этот
якорь, просто делаем пользовательское свойство, пример:

this.addProperty("_anchor", function () {
return this.current_anchor;
}, function (val) {
this.current_anchor = val;
_root.anyHandler(val);
});


вот собственно код JSFL. Создайте новый JSFL документ, скопируйте и
воткните скрипт (ниже), сохраните под именем add_anchors.jsfl в папке
C:\Documents and Settings\[USER NAME]
\Local Settings\Application Data
\Macromedia\Flash MX 2004\en\Configuration\Commands

и пользуйтесь на здоровье.


[JSFL]

var anchors_timeline = fl.getDocumentDOM().getTimeline()
var frames_number = anchors_timeline.getSelectedFrames();
frames_number=frames_number[frames_number.length-1]
var anchors_layer_num = anchors_timeline.addNewLayer("anchors", "normal", true )
anchors_timeline.convertToKeyframes(0, frames_number)
var scripts_layer_num = anchors_timeline.addNewLayer("anchors scripts", "normal", false)
anchors_timeline.convertToKeyframes(0, frames_number)
for (var i=0; i<frames_number; i++) {
anchors_timeline.setSelectedLayers(scripts_layer_num)
anchors_timeline.setSelectedFrames(i, i, true)
anchors_timeline.setFrameProperty('actionScript', 'this._anchor='+(i+1));
anchors_timeline.setSelectedLayers(anchors_layer_num)
anchors_timeline.setSelectedFrames(i, i, true)
anchors_timeline.setFrameProperty('name', 'a'+(i+1));
anchors_timeline.setFrameProperty('labelType', 'anchor');
}

[/JSFL]