PDA

Просмотр полной версии : Как в as3 выполнить код JS ?


MD5
12.09.2013, 00:14
подскажите по сабжу, возможно ли выполнить код JS на страничке из AS3 ?

Wolsh
12.09.2013, 01:04
ExternalInterface (http://help.adobe.com/ru_RU/FlashPlatform/reference/actionscript/3/flash/external/ExternalInterface.html)

MD5
12.09.2013, 11:07
так с помощью ExternalInterface можно вызвать любую функцию на языке JavaScript, если эта функция уже есть на страничке, а я про то, например, чтобы создавался див дополнительный в контенте и этот код только на AS3

mooncar
12.09.2013, 11:25
С помощью ExternalInterface не обязательно выполнять JS, уже имеющийся на странице.
Напишите аргументом метода ExternalInterface.call строку, в которой будет представлен код JS, выполняющий нужные действия.

KumoKairo
12.09.2013, 11:30
Напишите аргументом метода ExternalInterface.call строку, в которой будет представлен код JS, выполняющий нужные действия.
Небольшое уточнение - кусок кода нужно передавать в виде строки функции eval:

var myLittleJSBehavior:String = "var i = 0; console.log(i + 5);"
if(ExternalInterface.available)
{
ExternalInterface.call("eval", myLittleJSBehavior);
}


Вот это 100% проверенный метод

razerw
12.09.2013, 12:06
отличная статья, с хорошим примером
http://http://circlecube.com/2010/12/actionscript-as3-javascript-call-flash-to-and-from-javascript/ (http://circlecube.com/2010/12/actionscript-as3-javascript-call-flash-to-and-from-javascript/)

MD5
12.09.2013, 17:52
package {

import flash.external.ExternalInterface;

public class GClass {

public function JS():void
{
var myLittleJSBehavior:String = "alert(1);"
if(ExternalInterface.available)
{
ExternalInterface.call("eval", myLittleJSBehavior);
}
}


}

}



в действиях первого кадра


var G:GClass = new GClass();
G.JS();



компиляция, вставка swf в html - проверка и алерта нету, где ошибка подскажите

mooncar
12.09.2013, 18:02
Выложите всё на сервер в первую очередь и тогда проверяйте.

MD5
12.09.2013, 18:20
так я проверяю на локальном сервере

Добавлено через 17 минут
еще вопрос, в панеле Вывод trace(ExternalInterface.call('eval', '1 + 1')) должен показать 2 или нет ? у меня выводит null

Добавлено через 2 часа 8 минут
спасибо разобрался )