PDA

Просмотр полной версии : Взаимодействие Flash и Javascript


referi
13.07.2006, 12:37
Взял код из хелпа :
import flash.external.*;
var greeting:String;
var btn:MovieClip = createButton(100, 30, 0xCCCCCC);
btn.onPress = function() {
greeting = String(ExternalInterface.call("sayHello", "browser"));
this.mcTxt.text = greeting; // >> Hi Flash.
};
var depth:Number = this.getNextHighestDepth();
function createButton(width:Number, height:Number, color:Number):MovieClip {
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;
}
вот HTML страница :
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=koi8-r" />
<title>1</title>
</head>
<body bgcolor="#ffffff">
<SCRIPT language="JavaScript">
function sayHello(name) {
alert(">> Hello " + name + ".");
return ">> Hi Flash.";
}
</SCRIPT>
<!--url's used in the movie-->
<!--text used in the movie-->
<!-- saved from url=(0013)about:internet -->
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="550" height="400" id="1" align="middle">
<param name="allowScriptAccess" value="always" />
<param name="movie" value="1.swf" /><param name="quality" value="high" /><param name="bgcolor" value="#ffffff" /><embed src="1.swf" quality="high" bgcolor="#ffffff" width="550" height="400" name="1" align="middle" allowScriptAccess="always" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
</object>
</body>
</html>
но он почемуто не работает. Помогите а то уже 2 дня мучаюсь.

Madasan
13.07.2006, 14:59
А как он должен работать?

referi
13.07.2006, 15:28
по логике вещей должен выводить сообщение при нажатии на кнопку

Madasan
13.07.2006, 16:38
Ну да, проверил, все точно выводит сообщение. :) Может быть у вас браузере чего надо поднастроить, разрешить выполнение Java Script, например?

referi
13.07.2006, 18:22
да эти разрешения есть может во флеше что-то не так

referi
13.07.2006, 20:00
если можно исходник выложи

Madasan
13.07.2006, 20:08
Так у тебя все выложено :) Я твой код копипэйстом в файл и запустил - все работает :victory:

referi
18.07.2006, 13:21
Всетаки не могу понять в чем проблема у меня
если выкладываю на http-сервер работает
а локально нет

etc
18.07.2006, 14:13
Локально из-за политики безопасности плеера не работает.

referi
18.07.2006, 14:31
а как это можно обойти

referi
19.07.2006, 18:33
вопрос актуален можно ли оьойти политику безопасности плеера??

etc
19.07.2006, 18:36
На то она и политика безопасности, что её нельзя обойти.
Но можно её настроить.
Настраивается тут:
http://www.macromedia.com/support/documentation/en/flashplayer/help/settings_manager04.html

referi
19.07.2006, 18:50
значит ответ однозначный - нельзя обойти??

etc
19.07.2006, 19:16
Я же написал -- можно настроить, чтобы он не делал выкриков на локалке (нужно добавить путь к папке или файлу флешки на указанной странице)

referi
20.07.2006, 19:43
он и не делает выкрики он просто не работает, а проблема в том что если на компе нет инета как я могу это настроить))

etc
20.07.2006, 19:44
Никак не можешь настроить.

referi
20.07.2006, 19:46
что вообще никак? ну так же не интерестно

Madasan
20.07.2006, 20:06
Всетаки не могу понять в чем проблема у меня
если выкладываю на http-сервер работает
а локально нетА как же ты на сервер выкладывал, если: проблема в том что если на компе нет инета ???

KidsKilla
20.07.2006, 20:38
у меня, например, осёл (IE) на локале воще перестал javascript обрабатывать. можт это изза обновлений -- хз. хотя на компе 4 осла и на всех эта бодяга =) будучи веп девелопером -- страшно неудобно. =/

etc
20.07.2006, 20:58
JS перестаёт работать после вируса Blackmal, как одна из причин.

referi
21.07.2006, 11:24
на работе есть инет а вот дома нет

GZep
03.11.2006, 16:50
поставить на комп локальный сервер, вроде денвера...denwer.ru :)

asterion
13.08.2011, 10:45
да, это можно обойти вот так. (http://flasher.ru/forum/showpost.php?p=620033&postcount=1)

Добавлено через 1 минуту
нормально можно будет потестить локально