Форум 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)
-   -   asfunction и открыть в новом окне (http://www.flasher.ru/forum/showthread.php?t=123713)

dmitry_stas 08.04.2009 17:19

asfunction и открыть в новом окне
 
Доброго вам времени суток, уважаемые форумчане.

Знаю, что про asfunction не раз обсуждалось, но про такое вроде не нашел. Вообщем, динамическое текстовое поле, в нем ссылка типа <a href='asfunction:my_func, arg'>ссылка</a>. При клике правой кнопкой мыши на ссылке появляется возможность открыть ссылку в новом окне, и так и происходит, если href='http://....', но с asfunction это не срабатывает, и ссылка все равно открывается в этом же окне браузера. Как все таки заставить открывать в новом окне?

P.S. mu_func содержит кое-какие действия по анимации открытия (на которые при открытии в новом окне (но не в текущем) в принципе можно и забить), а потом выполняется getURL()

Добавлено через 2 минуты
вообще, наверное, правильнее вопрос будет звучать не "как открыть...", а как понять, то что нажали "открыть в новом"?

Fatality 08.04.2009 18:33

Понять ? Это невозможно.

dmitry_stas 08.04.2009 20:07

Fatality, т.е. у проблемы нет решения?

Fatality 08.04.2009 20:34

Почему же нет ? Есть, но вы думаете совсем не в том направлении. Постарайтесь подробнее объяснить вашу проблему, а то по вышеизложенному тексту, создается впечатление, что вы сами несовсем понимаете чего хотите.

dmitry_stas 08.04.2009 21:19

:) да все я понимаю, просто даже не знаю, как подробнее. наоборот, не хотел вас путать лишней информацией. но вообще дело выглядит так: использую SWFAddress, использовать в динамическом текстовом поле с включенным выводом текста как HTML ссылку типа <a href='#main=1'>ссылка</a> не могу (так как Opera при определенных настройках перестает реагировать на изменение адресной строки, об этом я уже писал, причину нашел, но не нашел решения), приходится использовать ссылки типа <a href='asfunction:SWFAddress.setValue, main=1'>ссылка</a>. А уже потом, на основании изменения адресной строки, запускаются определенные функции и загружаются определенные мувики. Тут вроде сложного ничего, и при таком подходе все работает ОК, за исключением одного: при нажатии правой кнопки на ссылке вываливается стандартная менюшка (переопределить ее я не нашел как) с возможностью открыть ссылку, открыть ссылку в новом окне и скопировать адрес ссылки в буфер. Так вот если в ссылке href='asfunction:...', то при выборе "открыть в новом окне" флеш все равно обработает команду в текщем, и нового не откроет (оно и понятно на самом деле, нафига уже загруженому флешу открываться в новом окне а потом еще и как-то пытаться выполнить нужную функцию, да и вообще, строго говоря, причем тут Flash, коли за это HTML должен отвечать). Но я то на самом деле меняю адресную строку (просто не совсем стандартным методом), поэтому это вполне и допустимо. Осталось понять, как отловить то, что выбрали именно "открыть в новом окне", а не "открыть", или не кликнули по ссылке левой кнопкой.

Добавлено через 1 минуту
ну правда не знаю, как подробнее :)

Fatality 08.04.2009 22:14

Как я уже говорил ранее, узнать какой из стандартных пунктов меню выбрал пользователь — невозможно. Но можно отключить стандартные и поставить свои. И для каждого опредилить обработчик, который будет выполнять необходимые дейтсвия.
Код AS1/AS2:

var c_Mneu:ContextMenu = new ContextMenu();
var item = new ContextMenuItem("открыть как-нибудь...", c_Handler);
c_Menu.customItems.push(item);
c_Menu.hideBuiltInItems();
this.menu = c_Menu;
function c_Handler() {
        trace("меня выбрали !");
}


dmitry_stas 09.04.2009 11:40

Fatality, ну что вы в самом деле? я ж пишу, что не могу переопределить меню, которое вываливается для HTML-ссылок. Что в вашем случае this? текущий мувик? тогда это работать не будет. т.е. для всего остального текста будет, но как только указатель мыши окажется над HTML-ссылкой то будет вываливаться стандартная менюшка

Fatality 09.04.2009 12:07

По другому никак. В вашем случае — это невозможно.

dmitry_stas 09.04.2009 12:16

:) быть того не может. когда найду решение - напишу сюда.


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

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