Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   ExternalInterface.call ошибки (http://www.flasher.ru/forum/showthread.php?t=210504)

caste 23.03.2015 20:50

ExternalInterface.call ошибки
 
Приветствую всех.

Вызываю функцию яваскрипта и передаю ей параметры , название функции тоже получаю в флеше как флеш варс. Параметры ,что перерадаются в яваскрипт функцию это Json вида
{"file":"bcac5d9ac429ad90fd99d05c5aa383c7.wav"}

В флеше вызываю функцию яваскрипта так:
Код AS3:

var data=event.target["data"];                                
 
var fun: String = callback_after_save + "('" + data + "')";
 
ExternalInterface.call(fun);

В консоле фаерфокса появляется ошибка

SyntaxError: expected expression, got ')'

try { __flash__toXML(()) ; } catch (e) { "<undefined/>"; }

Функция отрабатывает верно и параметры принимает верно. Но эта ошибка возникает постоянно.
Откуда она и с чем связана? Как исправить???

caseyryan 23.03.2015 21:02

а если туда не JSON передавать, а просто строку bcac5d9ac429ad90fd99d05c5aa383c7.wav. Ошибка тоже вываливается?
Так, чисто гипотеза, может из-за кавычек в JSON'е не правильно обрабатывается вызов

п.с. что такое callback_after_save ? Это переменная типа String?

caste 23.03.2015 21:09

Да вот с того Jsona получаю имя файла.И отрабатывает,но в консоле фирефокса выдаёт эту ошибку.Т.е да как будто формат не нравится Jsona. Не знаю как испаравить- если бы не отрабатывала функция то было бы понятнее .

function reviewAudioAfterSave(data) {

data = JSON.parse(data);
alert(data.file);

}
Но отрабатывает и имя файла показывает.
В чём тут ошибка - не понимаю.

caseyryan 23.03.2015 21:15

я имею в виду если из флеша не перадавать джсон, а просто вызывать так:
Код AS3:

var data=event.target["data"];                                
 
var fun: String = callback_after_save + "('bcac5d9ac429ad90fd99d05c5aa383c7.wav')";
 
ExternalInterface.call(fun);

ну и в JS соответственно
Код AS3:

function reviewAudioAfterSave(data) {
 
alert(data);
 
}

вывалится ошибка?

caste 23.03.2015 21:20

Да переменная - название функции - получаю её как флешварс.

Добавлено через 1 минуту
Да вроде так не вываливается ошибка...так разве формат моего json не верный??

dimarik 23.03.2015 21:40

Цитата:

Сообщение от caste (Сообщение 1180459)
Да вроде так не вываливается ошибка...так разве формат моего json не верный??

Плевое дело проверить твой JSON.

caste 23.03.2015 21:43

Results

Valid JSON

dimarik 23.03.2015 21:50

Так, загуглил за пять секунд, может оно?

undefined 23.03.2015 22:04

Цитата:

Так, загуглил за пять секунд, может оно?
хех, копеечный баг, но исправлять уже нельзя.Похоже, адоб сделал себя заложником своей нерасторопности)

callme 23.03.2015 22:11

Мне кажется вы неправильно вызываете ExternalInterface.call.

Вы её так вызываете
Код:

ExternalInterface.call('jsFunc(blabla)')
а надо так
Код:

ExternalInterface.call('jsFunc', 'blabla')
Но сам не пользовался, может чушь говорю.

caste 23.03.2015 22:17

Пробывал и так ..ох тоже начинаю думать ,что это адобовский баг .Раньше года 2 назад таких ошибок не выдавало точно....ж(

caseyryan 24.03.2015 16:57

Цитата:

Раньше года 2 назад таких ошибок не выдавало точно....ж(
Может года 2 назад и отладчик в ФФ был другой ;)

caste 25.03.2015 16:43

Ура решилось. Тупо не ту функцию менял по невнимательности. Всё работает -ошибок не выдаёт.

Всем спасибо.


Часовой пояс GMT +4, время: 01:04.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.