Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Передача аргументов из html во flash (http://www.flasher.ru/forum/showthread.php?t=145364)

Aljnk 05.10.2010 23:12

Передача аргументов из html во flash
 
Ребята помогите, запутался окончательно. Такая ситуация - есть две ссылки в html нажимая на первую нужно передать переменной во flash значение равное 1, на вторую 2 и после каждого нажатия отображать это значение в textField.

Пробовал через ExternalInterface.addCallback:

во flash -
Код:

var res = 0;
ExternalInterface.addCallback("send", received);
function received(value:String):void {
          res = value;
          text_1.text = res;
        }

в html -
Код:

<a href="javascript:void(0) "onClick="send(1);">Hello</a>

<script language="JavaScript">
function send(value) {
        thisMovie("flash").send(value);
</script>

Пробовал через ExternalInterface.call:

во flash -
Код:

var res = ExternalInterface.call("receive");
в html -
Код:

<a href="javascript:void(0) "onClick="receive(1);">Hello</a>

<script language="JavaScript">
function receive(value) {
        return value;
</script>

Чувствую решение где-то есть и надеюсь оно близко... Помогите пожалуйста.

cleptoman 05.10.2010 23:15

nак попробуйте
<a href="javascript:void(0) "onClick="sendToActionScript(1);">Hello</a>

<script language="JavaScript">
function sendToActionScript(value) {
document["flash"].send(value);
</script>

Aljnk 06.10.2010 10:33

Ответ - может кому поможет:

Пишем во flash -
Код:

var res = 0;
ExternalInterface.addCallback("sendFromJS", recieveFromJS);
function recieveFromJS(t) {
        res = t;
}

Пишем в html -
Код:

<a href="javascript:void(0) "onClick="sendFromJS(777)">Hello</a>

<script>
function sendFromJS(par) {
var movie = (navigator.appName.indexOf("Microsoft")!=-1 ? window : document)["flashID"] movie.sendFromJS(par);
}
</script>

И все работает :)

Да, и не забудте import flash.external.*;

udaaff 06.10.2010 12:26

Для оформления своего кода надо использовать теги [code][/code]

Mirror13 15.10.2010 12:56

У меня похожая проблема.

В AS написан такой код:
Код AS3:

ExternalInterface.addCallback('playRadio', Play);
mainTextField.text = 'Зарегистрировано ' + ExternalInterface.available;

Функция Play:
Код AS3:

public function Play(e:MouseEvent = null):void
  {
    mainTextField.text = 'Play';
  }

Для тестирования флешка была вставлена в страницу с помощью такого кода:
Код:

<object width="550" height="400" id="radio">
  <param name="movie" value="radio.swf">
</object>

В JavaScript проверяем наличие функции:
Код AS1/AS2:

var radio = document.getElementById('radio');
alert(radio.playRadio);

По началу alert выдавал
Код:

function() { [native code] }
, но при вызове ничего не происходило. После нескольких безуспешных попыток что-то исправить и возвращения к тому же коду он стал выдавать undefined. Подскажите, пожалуйста, в чем может быть дело?

Astraport 15.10.2010 14:13

А почему flashVars не подходит?

Mirror13 15.10.2010 14:38

flashVars задаются один раз, перед загрузкой флешки. Мне нужно в ходе работы передавать команды и параметры.

xanderello 15.10.2010 14:57

2Astraport Тестишь локально или на сервере? Локально не работает.

Mirror13 15.10.2010 16:20

Я тестирую на сервере пример, который я привел. Вот такие результаты и получаются.

Добавлено через 1 час 47 минут
Проблема была решена вставкой флешки через swfobject:

Код:

<div id="radio"></div>

<script>
  swfobject.embedSWF('radio.swf', 'radio', '550', '110', '10');
</script>

Работает во всех популярных браузерах (IE6-9beta, FF3.6, Opera 10, Google Chrome 6).


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

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