Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   присвоить переменной данные полученные от javascript (http://www.flasher.ru/forum/showthread.php?t=109237)

urasfinks 10.03.2008 20:24

присвоить переменной данные полученные от javascript
 
Помогите пожалуйста...я передал параметры из javascript во flash вот так:
Код:

function jstoflash(lang)
{
window.document.flower.Setvariable("_root.lang", lang);
}
jstoflash('rus');

Данные точно передаются, проверял (создал динамический текст и в поле var написал lang).
я хотел эти данные (а именно передоваемый текст rus) присвоить переменной и сделать нужный запрос :
Код:

var langf=_root.lang;
lv.load ('http://localhost/flash.php?lang='+langf);

Но как вы понимаете результата нету. php говорит что переменная lang равна 'ничему' и пробовал ещё langf=_root.lang.text ...незнаю что делать помогите пожалуйста как корректно сделать присвоение, что бы запрос был как надо! С уважением sfinks.

iNils 10.03.2008 20:31

Для общения флеша с JS надо использовать класс ExternalInterface, удобнее, проще и надежнее.

По вопросу, а вы уверены, что в момент запроса lv.load, JS уже передал значение и флеш знает что передавать?

urasfinks 10.03.2008 22:13

Да уверен что значение уже передано! Написал рекурсивную функцию
Код:

function snova()
        {
                if(_root.param='')
                {
                        snova();
                }else
                {
                        lv.load ('http://localhost/flash.php?lang='+_root.param);
                }
        }
snova();

Всё равно ничего. А про ExternalInterface я не слышал...и если чесно я не представляю как это работает.
Please help me!

Fann 10.03.2008 22:31

Код:

if(_root.param==' ')

urasfinks 10.03.2008 23:10

Всё равно не работает хоть if(_root.param==' '), хоть if(_root.param=='')

iNils 10.03.2008 23:12

Покажите исходники и флеша и html страницы с JS

Fann 10.03.2008 23:36

может вы вообще не обьявляете param и она у вас undefined изначальна?

iNils 11.03.2008 00:48

Флеш часть, читайте комменты
Код:

import flash.external.*;
////System.useCodepage = true; вот это уберите!!! все данные должны поступать в кодировке utf-8
var massr:Array = new Array (0, 55, 85, -75, -45, -5, 25, 44, 63, 83, -53, -15, 0, 27);
var massx:Array = new Array (100, 148, 135, 80, 35, 13, 22, 45, 80, 130, 135, 154, 160, 160);
var massy:Array = new Array (0, 130, 138, 198, 181, 117, 58, 25, 5, 20, 75, 80, 103, 120);
//// стиль надо создать один раз, а не в цикле
var fontt:TextFormat = new TextFormat ();
fontt.font = "ar_font";
fontt.size = 13;
fontt.color = 0xFFFFFF;
fontt.align = "left";
////
var lv:LoadVars = new LoadVars ();
lv.onLoad = function () {
        for (var i:Number = 0; i < 1; i++) {
                var mc:MovieClip = _root.createEmptyMovieClip ("flowerg" + i, i);
                var txt:TextField = mc.createTextField ("pole", 0, massx[i], massy[i], 70, 50);
                txt.embedFonts = true;
                txt.selectable = false;
                if (i > 0) {
                        txt.text = this["flower" + i];
                }
                txt._rotation = massr[i];
                txt._alpha = 70;
                txt.setTextFormat (fontt);
                mc._y = 0;
        }
};
function loadFromServer (param) {
        txt.text = param;
        lv.load ('http://localhost/flash.php?lang=' + param);
}
//// вот об этом я сразу говорил
ExternalInterface.addCallback ("sendToFlash", null, loadFromServer);

html
Код:

<script language='javascript'>
        function send(param) {
                thisMovie("flower").sendToFlash(param);
        }

        function thisMovie(movieName) {
                if (navigator.appName.indexOf("Microsoft") != -1) {
                        return window[movieName]
                }
                else {
                        return document[movieName]
                }
        }

</script>
//// тут промежуточное содержимое было, сами разберетесь что к чему
<p><a href="javascript:send('rus');">rus</a></p>
<p><a href="javascript:send('eng');">eng</a></p>
<p><a href="javascript:send('ger');">ger</a></p>


urasfinks 11.03.2008 00:53

Благодарю за помощь! Даже...ещё не смотрел, но так настроение поднялось...спасибо спастбо спасибо! а вот на счёт ////System.useCodepage = true; вот это уберите!!! все данные должны поступать в кодировке utf-8 а как же русский шрифт? или в php декодировать в utf-8 ? и всё норма будет? Что то я даже и не посмотрел что в цикл запихнул стиль...мда...мой косяк. конечно не чего страшного...но может на сотую долю секунды стала программа работать быстрее... =)

Спасибо всё работает! " for (var i:Number = 0; i < 1; i++) " не меньше еденици а меньше 13! А так всё нормальненько! Спасибо огромное!

iNils 11.03.2008 02:17

Про utf-8: http://noregret.org/tutor/fonts/#4
Про цикл: да, я там пытался понять, что за клип нулевой и почему в него текст не ставится и сменил на 1, а назад вернуть забыл.


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

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