Форум 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)
-   -   неработает return используя ExternalInterface.call (http://www.flasher.ru/forum/showthread.php?t=104805)

meamur 03.12.2007 03:38

неработает return используя ExternalInterface.call
 
Флеш8 установлен...
ДжаваСкрипт Функция запускается...
Работает отсылка данных с флеша в джаву...
Код:

(alert(">>Hello"+name+".");greeting=String(ExternalInterface.call("sayHello","MYNAME"));)
НО почему-то из джавы в флеш передается null...
Код:

(return " Hi Flash.";    this.mcTxt.text = greeting;)
В чем может быть ошибка?

ПОЛНЫЕ КОДА НИЖЕ...

HTML Код:

Код:

<script>
    function sayHello(name) {
        alert(">> Hello " + name + ".");
        return " Hi Flash.";
    }
</script>



<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" width="401" height="172" title="sfdfsd">
  <param name="allowScriptAccess" value="sameDomain" />
  <param name="movie" value="MYFLASH.swf" />
  <param name="quality" value="high" /> 
  <embed src="MYFLASH.swf" quality="high" allowScriptAccess="sameDomain" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="401" height="172"></embed>
</object>




ACTION SCRIPT:
Код:

import flash.external.*;

var greeting:String;
var btn:MovieClip = createButton(100, 30, 0xCCCCCC);
btn.onPress = function()
{
    greeting = String(ExternalInterface.call("sayHello", "MYNAME"));
    this.mcTxt.text = greeting; // >> Hi Flash.
}

function createButton(width:Number, height:Number, color:Number):MovieClip
{
    var depth:Number = this.getNextHighestDepth();
    var mc:MovieClip = this.createEmptyMovieClip("mc_" + depth, depth);
    var mcFmt:TextFormat;

    mc.beginFill(color);
    mc.lineTo(0, height);
    mc.lineTo(width, height);
    mc.lineTo(width, 0);
    mc.lineTo(0, 0);

    mcFmt = new TextFormat();
    mcFmt.align = "center";
    mcFmt.bold = true;

    mc.createTextField("mcTxt", depth, 0, 0, width, height);
    mc.mcTxt.text = "Call JS Function";
    mc.mcTxt.setTextFormat(mcFmt);

    return mc;
}


wvxvw 03.12.2007 03:48

Попробуй watch'ем смотреть, когда значение поменяется, возможно, просто медленно работает.

iNils 03.12.2007 04:23

Вы будует смеятся, но не работает из-за того, что в коде html не хватает id в <object>. Достаточно добавить id="myflash".

meamur 03.12.2007 14:02

Спасибо, впринципе я так и думал что из-за какой-то такой тонкости...:)


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

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