![]() |
|
||||||||||
|
|||||
|
Есть код.
getURL("javascript:function setStatus(par){window.status=par}"); but.onRelease=function():Void{ getURL("javascript:setStatus('Привет зелёным человечкам.')"); } Кто нибудь знает - почему? Добавлено через 7 минут Ха-ха. тоже не работает. Подозреваю что тут дело в том, что Firefox не до конца поддерживает спецификацию JavaScript, или где то нужно дать особые разрешения что бы всё это работало. Одно могу сказать точно точно работает.
__________________
Играй. Это жизнь. Всё повторяется. Играй. |
|
|||||
|
Вообще на самом деле не зачем пока что. Просто читаю книжку и делаю примеры по ней. Ну и слегка неприятно/непонятно когда что-то ведёт себя не так как это описано.
А можно поподробнее про: Что такое диплинк? И что за готовый класс? О_о
__________________
Играй. Это жизнь. Всё повторяется. Играй. |
|
|||||
|
[+4 06.05.14]
|
www.google.ru там набираем DeepLink. Готовый класс - SWFAddress
|
|
|||||
|
В общем что такое DeepLink так и осталось для меня тайной за семью печатями. Гугл, как впрочем и Яндекс, находит всё что угодно, но только не ответ на этот вопрос.
А за то что сказали название класса - спасибо. Только вот в справочнике по AS2 от Adobe о нём не сказано не слова. Вероятно Вы имели в виду класс созданный группой умельцев на коленке. По крайней мере вот что я нашёл по этому вопросу: тут ссылка на страничку сайта умельцев где можно скачать класс и доку по нему. Собственно пока особо не ознакомился, сейчас сижу занимаюсь. Интересен вопрос - где можно узнать какие команды JavaScript поддерживает Firefox, да и другие браузеры. Это просто будет полезно и пригодится в дальнейшем. Или если он поддерживает их все, тогда где нужно ему разрешить выполнение тех команд в работе с которыми возникли проблемы(команды приведены в первом посте)? Добавлено через 1 час 37 минут Ололо! private static function _call(fn:String, param:Object):Void { if (typeof param == 'undefined') param = ''; trace(ExternalInterface.available);//Возвращает true trace(_availability);//Возвращает false if (_availability) { if (System.capabilities.os.indexOf('Mac') != -1) { if (_queue.length == 0) { _queueInterval = setInterval(SWFAddress._callQueue, 10); } _queue.push({fn: fn, param: param}); } else { ExternalInterface.call(fn, param); } } } Добавлено через 2 часа 7 минут }{E-}{E Вопрос решён. Да, SWFAddress оказался хренью. Как я и предполагал изначально Об этом говорит обнаруженный бажок + отсутствие адекватного хелпа.Собственно разобрал как реализован setStatus в компоненте SWFAddress. ExternalInterface.call() - вызывает функцию JavaScript. Вот выдержка из хелпа Adobe по AS2: call (ExternalInterface.call method) public static call(methodName: String, [parameter1: Object]) : Object Calls a function exposed by the Flash Player container, passing 0 or more arguments. If the desired function is not available, the call returns null; otherwise it returns the value provided by the function. Recursion is not permitted; a recursive call produces a null response. If the container is an HTML page, this method invokes a JavaScript function in a <script> element. If the container is some other ActiveX container, this method broadcasts an event with the specified name, and the container processes the event. If the container is hosting the Netscape plug-in, you can either write custom support for the new NPRuntime interface or embed an HTML control and embed Flash Player within the HTML control. If you embed an HTML control, you can communicate with Flash Player through a JavaScript interface that talks to the native container application. Availability: ActionScript 1.0; Flash Player 8 Parameters methodName: String - The name of the function to call in the container. If the function accepts parameters, they must appear following the methodName parameter. parameter1: Object [optional] - Any parameters to be passed to the function. You can specify zero or more parameters, separating them by commas. The parameters can be of any ActionScript data type. When the call is to a JavaScript function, the ActionScript types are automatically marshalled into JavaScript types. When the call is to some other ActiveX container, the parameters are encoded in the request message. Returns Object - The response received from the container. If the call failed (for example if there is no such function in the container, or the interface was not available, or a recursion occurred, or there was a security issue) null is returned. Example The following example calls the JavaScript function sayHello() in the HTML page that contains the SWF. The call is made by using the ExternalInterface.call() method. 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. } 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; } For the previous example to work properly, you should be copy and paste the following code into the containing HTML page. Unless the HTML page is hosted on a server, your browser may alert you with a security warning. <script> function sayHello(name) { alert(">> Hello " + name + "."); return ">> Hi Flash."; } </script> import flash.external.*; ExternalInterface.call("setStatus('Привет зелёным человечкам.')", "browser"); __ Думаю, тема исчерпана. Добавлено через 2 часа 17 минут И да, Заставить работать в Firefox не получилось. Судя по всему эта команда залочна разрабами Firefox. Наверное как не очень безопасная. Хотя, кто их знает.
__________________
Играй. Это жизнь. Всё повторяется. Играй. Последний раз редактировалось AzagThoth; 05.05.2010 в 05:50. |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Это не аналог, в таком виде.
|
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
В первом случае вы вызываете setStatus с текстом. Во втором неверный синтаксис, первый аргумент принимает имя функции, а не строку непонятно с чем. Аналогом будет это:
|
|
|||||
|
Да, так точно. Блин. Это я какую то ерунду написал
) Проверял двумя методами, всё работало. Просто перекосел с примером когда отписывался. Спасибо большое, что поправили.
__________________
Играй. Это жизнь. Всё повторяется. Играй. |
|
|||||
|
[+4 06.05.14]
|
дА уж написать такую ахинею! SWFAdress работет на всех браузерах прекрасно и выполняет свою задачу на 100%. DeepLink - линкование во флеше с помощью сторонних компонентов, чтопозволяет меня текст адреса, текст заголовка страницы. А далее и возможность с помощью навигации на сайте реагировать на строку состояния, а так же в обратном порядке меняя строку состояния переходить на определенное место флешке или же вы полнять опред действие....
|
![]() |
![]() |
Часовой пояс GMT +4, время: 03:12. |
|
|
« Предыдущая тема | Следующая тема » |
| Теги |
| as2 , javascript+flash |
|
|