Заодно нашел место где можно прописать, что запускается по клавише F1!
Это в настройках плагина AS3 Context -> Documentation Command Line. Надо попробовать настроить нормальный запуск хелпа. К примеру, через Adobe Help Viewer.
Итак, открываем Installed Plugins ->AS3 Context -> Settings -> Documentation Command Line. Видим здесь строку:
http://www.google.com/search?q=%22actionscript 3.0%22+$(ItmTypPkg)+$(ItmTypName)+$(ItmName)+site:livedocs.adobe.com
Всё как на ладони. Попробуем открывать livedocs.adobe.co. Для начал исследуем как он открывается из флэшового хелпа. Для MovieClip открывается такая ссылка:
http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/index.html?flash/display/MovieClip.html&flash/display/class-list.html
Напрямую вызвать онлайновый хелп не получится -
$(ItmTypPkg) возвращает flash.display, а нам надо flash/display
Попробуем написать редиректор, который скорректирует имя класса и перебросит нас на нужный раздел.
<?
$index=$_GET["index"];
$item=$_GET["item"];
$class=$_GET["class"];
$package=str_replace(".","/",$_GET["package"]);
Header("Location: http://livedocs.adobe.com/".$index.$package."/".$class.".html#".$item);
?>
Теперь пропишем в настройках F1:
http://www.my_url.ru/fd2livedocs.php?index=flash/9.0/ActionScriptLangRefV3/&package=$(ItmTypPkg)&class=$(ItmTypName)&item=$(ItmName)
где www.my_url.ru - сайт-прокси, на который кладется PHP-редиректор.
Можно указать и ссылку на Flex:
http://www.my_url.ru/__as3doc/fd2livedocs.php?index=flex/2/langref/&package=$(ItmTypPkg)&class=$(ItmTypName)&item=$(ItmName)
К сожалению, не работают якоря для методов, т.к. якоря указываются с "()".
Избавимся от того недостатка:
Добавим параметр $(ItmKind).
http://www.my_url.ru/__as3doc/fd2livedocs.php?index=flex/2/langref/&package=$(ItmTypPkg)&class=$(ItmTypName)&item=$(ItmName)&kind=$(ItmKind)
Меняем код PHP:
<?
$index=$_GET["index"];
$item=$_GET["item"];
$class=$_GET["class"];
$package=str_replace(".","/",$_GET["package"]);
$kind=$_GET["kind"];
if ($kind=="function") $kind="()"; else $kind="";
Header("Location: http://livedocs.adobe.com/".$index.$package."/".$class.".html#".$item.$kind);
?>
Теперь всё Ок.
При вызове справки, броузер открывается в последнем открытом окне - это совсем не удобно.
Попробовал также такую систему для AS2 - не работает, т.к. в livedocs AS2 пути к нужным документам содержат пакеты, а FD пакеты не передет :(.
2 комментария:
да, $(ItmTypPkg) возвращает flash.display вместо flash/display, но можно использовать вместо него $(ItmTypPkgNamePath).
тогда ссылка будет такой: http://help.adobe.com/ru_RU/FlashPlatform/reference/actionscript/3/$(ItmTypPkgNamePath).html#$(ItmName)
вместо $(ItmTypPkg)/$(ItmTypName) можно использовать $(ItmTypPkgNamePath).
http://help.adobe.com/ru_RU/FlashPlatform/reference/actionscript/3/$(ItmTypPkgNamePath).html#$(ItmNameDocs)
Отправить комментарий