Использовать Javascript для вызова метода во флэш-файле (.swf)? - PullRequest
2 голосов
/ 19 декабря 2010

У меня есть флэш-файл, который содержит пакет «игра», который имеет класс «Счета» и метод setValue ().Я хочу написать несколько строк Javascript, которые позволяют мне вызывать этот метод.Кто-то направил меня к этому уроку, но я все еще немного сбит с толку.

Javascript: alert("start"); var so; so = document.embeds[0]; 
so.addParam("allowScriptAccess","always");  import flash.external.ExternalInterface; 
ExternalInterface.call("setValue[2600]");
  1. отображает предупреждение о том, что он действительно начал выполняться
  2. сохраняет встроенный флэш-файл в переменную и устанавливает доступ
  3. , который импортируеткласс
  4. вызывает метод

Я не уверен, как работает этот класс?Это всего лишь кусочки, которые я смог придумать с этого сайта, но я не совсем понимаю, как все это работает (но, конечно, надеюсь, что в конечном итоге).Это сайт: http://bytes.com/topic/flash/answers/694359-how-do-i-access-flash-function-using-javascript. Когда я выполняю код с импортом, ничего не происходит, но появляется предупреждение, когда у меня нет этого заявления?

Если кто-то может уточнить, как яЯ мог бы вызвать этот метод, я был бы очень благодарен!:)

Ответы [ 2 ]

6 голосов
/ 20 декабря 2010

В вашем коде есть смесь JavaScript и ActionScript.

В ActionScript вам необходимо зарегистрировать функцию setValue для внешнего использования, чтобы ее можно было вызывать из JavaScript.Код для него может выглядеть примерно так:

package game
{
    import flash.display.Sprite;
    import flash.external.ExternalInterface;
    import flash.text.TextField;

    public class Scores extends Sprite
    {
        public var txtScore:TextField;      // A textfield in the sprite

        public function Scores()
        {
            // Register the function for external use.
            ExternalInterface.addCallback("setValue", setValue);
        }

        private function setValue(value:Number):void
        {
            txtScore.text = String(value);
        }

    }

}

И JavaScript может выглядеть примерно так:

var so = document.embeds[0];
so.setValue(2600);
0 голосов
/ 13 марта 2014

Adobe имеет документацию с длинным, но полезным примером здесь .Они показывают ActionScript, а также JavaScript и то, как они могут взаимодействовать обоими способами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...