Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 14.03.2010, 11:37
ekeeper вне форума Посмотреть профиль Отправить личное сообщение для ekeeper Найти все сообщения от ekeeper
  № 1  
Ответить с цитированием
ekeeper

Регистрация: May 2008
Сообщений: 102
По умолчанию Как определить доступность navigateToURL?

Основываясь на вот этой вот теме http://www.flasher.ru/forum/showthre...llowNetworking спрошу

Если allowNetworking="internal" запрещает 3 функции navigateToURL(), fscommand(), ExternalInterface.call(), то как на этом вот портале http://www.newgrounds.com/portal/view/530287 БЕЗ allowNetworking="internal" смогли запретить fscommand(), ExternalInterface.call(), а navigateToURL() при этом оставить - allowScriptAccess="never"?

Допустим allowNetworking="internal" - как мне об этом в коде узнать?

Делал как тут http://jaycsantos.com/flash/experime...er-is-enabled/ - ExternalInterface.call(null) - проверка работает, обрадовался, но потом увидел, что это не срабатывает с newgrounds.com - я так понял на этом портале allowScriptAccess="never"

из всего этого вытекает мой самый главный вопрос - как проверить на доступность navigateToURL()???

так, чтобы не надо было делать ее вызов - иначе откроется окно левое, а это никому не нужно. Или как вызвать navigateToURL() для теста так, чтобы окна никакие не открывались?


Последний раз редактировалось ekeeper; 14.03.2010 в 11:46.
Старый 14.03.2010, 13:17
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 2  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Думать что она всегда есть, но ставить в try-catch Bыглядит так, что никак не проверить.
__________________
Hell is the possibility of sanity

Старый 15.03.2010, 23:32
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 3  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
У кого-то в блоге честно подглядел идею.

Код AS3:
package flash.utils
{
 
import flash.external.ExternalInterface;
 
/**
 * @return			true if allow networking 
 *
 * @author			Dimarik
 * @version			1.0
 * @playerversion		Flash 9
 * @langversion			3.0
 * 
 *
 * @keyword			allownetworking, externalinterface
 */
public function allowNetworking():Boolean {
 
    if (_reason)
        return _reason == 1;
 
    try {
        ExternalInterface.call(null);
    }
    catch (error:SecurityError) {
        _reason = 2;
        return false;
    }
    catch (error:Error) {
    	// Error #2067: The ExternalInterface is not available in this container.
    	// ExternalInterface requires Internet Explorer ActiveX, Firefox, 
    	// Mozilla 1.7.5 and greater, or other browsers that support NPRuntime.
        _reason = 3;
        return false;
    }
 
    _reason = 1;
    return true;
}
}
 
/**
 * @private
 * Possible reason values
 * 
 * 0 - Networking not yet checked
 * 1 - Allow networking
 * 2 - Deny networking by security reason.
 * 3 - No external interface found. Networking not possible.
 */
internal var _reason:  uint = 0;
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

Старый 14.04.2011, 18:15
BAHUS вне форума Посмотреть профиль Отправить личное сообщение для BAHUS Посетить домашнюю страницу BAHUS Найти все сообщения от BAHUS
  № 4  
Ответить с цитированием
BAHUS
[+]
 
Аватар для BAHUS

Регистрация: Aug 2001
Адрес: Украина Харьков
Сообщений: 104
Отправить сообщение для BAHUS с помощью ICQ
Пример в случае
Код:
<param name="allowScriptAccess" value="never" />
<param name="allowNetworking" value="all" />
возвращает allowNetworking == false - но navigateToURL работает


Последний раз редактировалось BAHUS; 14.04.2011 в 18:40.
Старый 15.04.2011, 00:31
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 5  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
http://kb2.adobe.com/cps/164/tn_16494.html
When AllowScriptAccess is "never", the SWF file cannot communicate with any HTML page. Using this value is deprecated

The flash.net.navigateToURL() function подпадает под него и The ExternalInterface.call() method тоже. "This value is deprecated", но поддерживается. Получается, что
AllowScriptAccess = never имеет низкий приоритет перед AllowNetworking = all для navigateToURL(), но высокий для ExternalInterface.

Я не знаю как разрешить этот парадокс.
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

Создать новую тему Ответ Часовой пояс GMT +4, время: 13:26.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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