Можно ли получить доступ к функциям и переменным as3 через JSFL?
Я пишу сценарий JSFL для экспорта набора файлов PNG для каждого основного раздела флэш-анимации. Для этого мне нужен доступ к функциям и переменным в классе Main.as файла Flash. Документация для JSFL очень редка в сети, и я не могу сказать, возможно ли это. Вот что у меня есть:
var docs = fl.documents;
for(var i = 0; i < docs.length; i++)
{
//loop through everything and turn off compression for max quality
var libItems = docs[i].library.items;
for (j = 0; j < libItems.length; j++){
if(libItems[j].itemType == "bitmap"){
libItems[j].allowSmoothing = true;
libItems[j].compressionType = "lossless";
}
}
//the variable adStages is an array of functions in the as3 class
//this way of trying to access the array doesn't work
for(k = 0; k<docs[i].adStages.length; k++){
//here I need to run function adStages[k] to move the animation on
//to the next frame to capture
docs[i].exportPNG("file:///Users/Graeme/Desktop/"+ docs[i].name + k,true, true);
}
}
Я знаю, что могу сделать это более неуклюжим способом, расширив файл Main.as и используя as3corelib PNGEncoder для экспорта файлов, но я чувствую, что если этот способ работает, он может быть более элегантным, и мне не нужно запрашивать, куда помещать файлы каждого кадра.
1 ответ
Вы можете встроить SWF-файл в пользовательскую панель Flash IDE, а затем обмениваться данными через внешний интерфейс или вызывать код JSFL напрямую из AS3 через метод MMExecute(). Если вы хотите проделать большую работу с JSFL, подумайте о прочтении книги Кейта Питера "Расширение FlashMX 2004". эта книга старая, но все еще очень хорошая и не устарела.