Перед вами документ класса верхнего уровня - в данном случае файл .as, описывающий класс с именем Main, расширяющий Sprite (все документы верхнего уровня, которые будут скомпилированы в .swfs, расширяют Sprite или MovieClip).
Вы правы, Flash Professional в основном скрывает это от вас (хотя вы можете добраться до класса документа, если покопаетесь). Но Flash Professional - действительно творческий инструмент (для рисования / анимации). Хотя его можно использовать для написания кода ActionScript, это не обязательно его сильная сторона.
FlashDevelop - это бесплатная IDE (к сожалению, только для Windows), конкурирующая с Flash Builder. Они предназначены для разработки программного обеспечения ActionScript. Эти IDE очень удобны для новичков, поскольку они автоматически загружают и устанавливают все необходимые SDK, автоматизируют процесс сборки, предоставляют шаблоны проектов, автозавершение кода и отладку - все это есть в среде IDE.
Если вы предпочитаете, чтобы IDE помогала вам начать работу, то любой из них должен работать нормально (хотя, опять же, Flash Builder - это коммерческий инструмент, я считаю, что Flash Develop является бесплатным).
Однако обратите внимание, что вам не нужна IDE и вы можете использовать полностью бесплатные инструменты Adobe для компиляции файлов исходного кода .as в файлы .swf - используйте Adobe Flex SDK. Это компилятор командной строки, который работает в Windows, Mac и Linux, поэтому вы будете использовать любой текстовый редактор для редактирования ваших файлов .as. Если это ваш предпочтительный рабочий процесс, см. это руководство, чтобы начать работу.
Я также рекомендовал бы эта отличная статья для начала разработки флеш-игр - она полна отличной информации и ссылок на руководства.
Что касается вашего вопроса о том, куда идет ваш код, да, импорт идет вверху с другими, ваш оператор addCallback находится под комментарием «точка входа», и функция становится функцией в основном классе (точно так же, как функция init - внутри класса потребуется объявление области видимости, например общедоступное, защищенное или частное). Где вы разместите переменную myText, зависит от того, когда вы захотите ее изменить, но сейчас это должно быть сделано:
package
{
import flash.display.Sprite;
import flash.events.Event;
import flash.external.ExternalInterface;
/**
* ...
* @author Will Thomas
*/
public class Main extends Sprite
{
public function Main():void
{
if (stage) init();
else addEventListener(Event.ADDED_TO_STAGE, init);
}
private function init(e:Event = null):void
{
removeEventListener(Event.ADDED_TO_STAGE, init);
// entry point
ExternalInterface.addCallback("sendOutput", sendStaticTextFromAS3);
}
protected function sendStaticTextFromAS3():void {
var myText:String = "Example String";
ExternalInterface.call("receiveTextFromAS3", myText);
}
}
}
Если я вспомню, как работает ExternalInterface.addCallback, похоже, что это будет делать, когда вы вызываете sendOutput () из javascript, он вызывает метод sendStaticTextFromAS3 в ActionScript, который отправит «Пример строки» обратно в receiveTextFromAS3 ( ) Функция JavaScript - разновидность петли. Вы можете использовать одну функцию для обработки связи javascript-to-as3, в то время как отдельная функция обрабатывает вашу связь as3-to-javascript:
private function init(e:Event = null):void
{
removeEventListener(Event.ADDED_TO_STAGE, init);
// entry point
// Setup js-to-as listener
ExternalInterface.addCallback("sendTextToAS3", receiveTextFromJS);
// Send example text to js
sendTextFromAS3("Hello from ActionScript!");
}
protected function receiveTextFromJS(text:String):void {
trace("Received text from js: "+text);
// TODO: do something with it
}
protected function sendTextFromAS3(text:String):void {
ExternalInterface.call("receiveTextFromAS3", text);
}
Также следует отметить, что существуют ограничения безопасности для использования addCallback, описанные в Документация по внешнему интерфейсу (ваш SWF-файл должен быть встроен на веб-страницу с набором параметров allowScriptAccess).
Надеюсь это поможет. знак равно
person
Jeff Ward
schedule
30.03.2012