Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Альтернатива LocalConnection? (http://www.flasher.ru/forum/showthread.php?t=166708)

gr_crd 05.09.2011 14:13

Альтернатива LocalConnection?
 
Дано: на рабочем столе отображается веб-страничка, в нее встроена флешка.
По нажатию на кнопку необходимо передать с помощью LocalConnection сообщение о том, что пора отобразить окно InfoWindow. Принимает это сообщение флешка, собранная с помощью Zinc. Она не встроена в веб-страницу, это отдельная, запущенная программа. Ее задача - создать новую форму (createFrom) в которой нужно отобразить содержимое флешки InfoWindow.

Все работает отлично, если открывать страничку с передающей флешкой любыми браузерами (IE6,7++ и др.)

Проблема в том, что программа, выводящая страничку на рабочем столе, это некоторый компонент написанный для Delphi, для отображения веб-страниц и др. Вот что говорит navigator.appVersion ' 4.0 (compatible; MSIE 7.0; Windows NT 6.1; Embedded Web Browser from:bsalsa.com'

Видимо, LocalConnection там и не заработает вовсе...

Какие есть альтернативы для такой задачи?
А именно: пользователь кликает по флешке встроенной в веб страничку, должно открываться окно с другой флешкой. Конечно, можно было бы использовать ExternalInterface, JS, чтобы открыть новое окно браузера с помощью window.open(), но в этом случае не удасться убрать заголовок окна, кнопки управления окном (закрыть, свернуть и др.) а также вокруг окна останется рамка. Есть конечно еще window.showPopupWindow, но это не подходит по причине того, что окно закрывается само по себе, если щелкнуть в любом месте за его пределами. да и swfobject там так и не заработал. (вместо флешки - установите FP)

Есть еще для такой задачи решения?...

хм, есть еще вариант, из той флешки которая создает формы (которая собрана с помощью Zinc и запущена в виде отдельной программы) как-то периодически опрашивать веб-страничку с флешкой, чтобы узнать, открывать окно или нет. но это как-то ненормально...

извиняюсь за путаницу и ошибки в тексте, не могу нормально сформулировать всю эту ситуацию, тороплюсь.

ps.
конечно можно было бы создавать окна прямо во флешке с помощю addChild, но страничка с флешкой отображается не на весь экран, и окна нужно создавать именно за пределами странички, поверх рабочего стола, при этом все иконки рабочего стола должны остаться кликабельными.

kackbip 05.09.2011 15:12

Очень забавная задача... до идиотизма...
Можно было бы добавить еще немного идиотизма(хотя куда уж больше) и реализовать связь через сервер.
Цинковая флэшка подсоединена сокетом к серверу. Браузерная шлет хттп запрос. Сервер, получая хттп запрос, оповещает цинковую флэшку по сокету. :) Идиотским задачам - идиотские решения :)

gr_crd 05.09.2011 15:17

ну это понятно, что идиотская. но таковы ее условия, и изменить, увы нельзя.

NikolyA 05.09.2011 15:26

а не проще было бы на Air все это сделать и не мудрить

Gage 05.09.2011 23:43

Если все, что вы хотите должно работать под виндами и на одной машине, то:
Код:

function doie(s) {
        ie.navigate("about:blank");
        ie.ToolBar = 0;
        ie.MenuBar = 0;
        ie.StatusBar = 0;
        ie.Resizable = 0;
        ie.Left = 200;
        ie.Top = 200;
        ie.Width = 350;
        ie.Height = 100;
        ie.Visible = 1;
        while (ie.Busy) WScript.Sleep(10);
        d = ie.Document;
        d.writeln(s);
        d.getElementById("a").style.width=0;
        d.getElementById("a").style.height=21;
        /*
        for (i=1; i<101; i++) {
                d.getElementById("lab").innerHTML = "<b>" + i + "%</b>";
                d.getElementById("a").style.width = i*3;
                d.getElementById("a").style.background = "black";
                while (ie.Busy) WScript.Sleep(10);
        }
        ie.Visible = 0;
        */
}

var ie = WScript.CreateObject("InternetExplorer.Application", "IE_");
var s = "kjlfkdsglsdjfgkljsdlfkglksdjfgkjdflj";
s += "<title></title>";
s += "<style>body{background:lightgrey}; label {font-family:tahoma;font-size:11px}</style>";
s += "<center>";
s += "<label id=lab></label>";
s += "<table style='width=300'><tr><td id=a><td></table>";
doie(s);

Сохраните код в файл с расширением ".js" и запустите (как обычный exe-шник даблкликом)


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

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