PDA

Просмотр полной версии : Запуск функции во флеше с штмл!


Odyssus
09.09.2008, 20:06
Помогите пожайлуста разобраться на пальцах про передачу с яваскрипт во флеш. Прочитал много постов, но до конца не смог понять.
Переменные с горем пополам с помощью LoadVars.load() получилось принять, а как заставить с штмл запустить функцию на флеше?
например с штмл с кода <a href="">test</a> чтобы при нажатии загрузалась во флеше функция test(); :)

Fernando Costa
09.09.2008, 20:14
смотрите класс ExternalInterface

Odyssus
09.09.2008, 21:02
смотрел, не помогло :)
если не сложно может кто-то написать кусочек кода?

Obi
09.09.2008, 21:02
asfunction

var myMP3:Sound = new Sound();
function playMP3(mp3:String) {
myMP3.loadSound(mp3, true);
myMP3.onLoad = function(success) {
if (!success) {
// code to handle errors here
}
};
}
this.createTextField("list_txt", this.getNextHighestDepth(), 0, 0, 200, 100);
list_txt.autoSize = true;
list_txt.html = true;
list_txt.multiline = true;
list_txt.htmlText = "<a href=\"asfunction:playMP3, track1.mp3\">Track 1</a><br>";
list_txt.htmlText += "<a href=\"asfunction:playMP3, track2.mp3\">Track 2</a><br>";

Odyssus
09.09.2008, 21:08
тут текст, я так понял, находится в самой флешке.
Я про ситуацию, когда в браузере на страничке загружена флешка, и под ней, ссылка, на нее кликаешь, и во флешке вызывается функция.

Obi
09.09.2008, 21:16
Не внимательно прочитал ваш пост, прошу прощения.
http://noregret.org/tutor/navigation/
Думаю там вы найдете решение вашей проблемы.

Odyssus
10.09.2008, 00:44
смотрел, не нашел к сожалению, чего и попросил как правильно оформить код..

oOLokiOo
18.09.2008, 12:28
Решил не создавать новую тему а поднять эту. Хоть у меня и проблемма немного не про <a href="asfunction:... как у автора...

Вообщем! Есть флешка. В DynamikText.htmlText вставлен html со ссылками. По нажатию на ссылку открываетсяо попап с


<html>
<body onBeforeUnload="closeThis();">
<iframe src ="siteurl" width="100%" height="100%">
</iframe>
</body>
</html>


Так вот собсно вопрос. Как сделать что б при выоплнении - closeThis() во флеше запустилась определённая флеш функция?

PgeorgyV
19.09.2008, 13:50
На страничке:

<script language="javascript">
function thisMovie(movieName)
{
if (navigator.appName.indexOf("Microsoft") != -1) {
return window[movieName];
}
else {
if(document[movieName].length != undefined){
return document[movieName][1];
}
return document[movieName];
}
}
function click() {
thisMovie("IDflashObject").CallbackNameFunction();
}
</script>

<a onclick="click();">this click</a>

Во флеше:

import flash.external.*;

ExternalInterface.addCallback("CallbackNameFunction", this, NameFunction);

function NameFunction():Void {
var txt:TextField = _root.createTextField('txt_'+_root.getNextHighestDepth(),_root.getNextHighestDepth(),0,0,0,0);
txt.autoSize = true;
txt.text = 'вот оно как должно было быть ;-)';
}

oOLokiOo
22.09.2008, 13:08
О! Ппц я промучался над этим, а тут пару строчег кода)
Только в моём варианте нужно было из попапа достукиваццо к флешке таг:
return window.opener.document[movieName];
Ну это вже мелочи :)

Большое Спасибо!

iNils
22.09.2008, 13:18
Пользователь oOLokiOo получает плюс за нарушение первого пункта правил (использование "албанского" языка).