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

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

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

Регистрация: Feb 2006
Сообщений: 56
Отправить сообщение для catyoshi с помощью ICQ
По умолчанию открытие управляемых окон

Добрый день!

Хочется из флеш-приложения открыть окно, определенного размера по аналогу с window.open( .. ) в JavaScript.

Использование функции navigateToURL для открытия псевдо-url (начинающегося с javascript) приводит к странному эффекту. Вернее если подумать, то ничего в нем странного нет, но я не знаю как его обойти.
Вобщем при попытке открыть некий урл, например,
http://my-site.ru - флеш сначала открывает новую вкладку/окно, где URL страницы совпадает с моим псевдо-урл (javascript:window.open( 'http://my-site.ru', ... ) ), а уже в этом окне срабатывает javascript и открывается новое окно нужных мне размеров и с URL = http://my-site.ru.
Т.е. получается одно лишнее окно.


Вопрос: как можно избежать ненужного промежуточного окна?

Открываю окно с помощью этого кода:

######
Код AS3:
package utils {
 
  import flash.net.URLRequest;
  import flash.net.navigateToURL;
 
  public function getURL ( url:String, target:String = null ):void {
    try { return( navigateToURL( new URLRequest( url ), target ) ); }
    catch( error:Error ) { return( void ); }
  }
 
}
########
Код AS3:
package utils.js {
 
  import utils.getURL;
 
 
  public class window {
 
    public static const BLANK:String  = '_blank';
    public static const PARENT:String = '_parent';
    public static const SELF:String   = '_self';
    public static const TOP:String    = '_top';
 
    public static function open ( url:String, name:String, target:String = window.BLANK, width:uint = 0, height:uint = 0, toolbar:Boolean = true, location:Bo
 
      var params:Vector.<String> = new Vector.<String> ();
 
      if ( width )  { params.push( 'width='  + width  ); }
      if ( height ) { params.push( 'height=' + height ); }
 
      params.push( 'toolbar='     + ( toolbar     ? 'yes' : 'no' ) );
      params.push( 'location='    + ( location    ? 'yes' : 'no' ) );
      params.push( 'directories=' + ( directories ? 'yes' : 'no' ) );
      params.push( 'status='      + ( status      ? 'yes' : 'no' ) );
      params.push( 'scrollbars='  + ( scrollbars  ? 'yes' : 'no' ) );
      params.push( 'resizable='   + ( resizable   ? 'yes' : 'no' ) );
      params.push( 'copyhistory=' + ( copyhistory ? 'yes' : 'no' ) );
 
      url = "javascript:window.open( '" + url + "', '" + name + "', '" + params.join( ', ' ) + "' );";
 
      return( getURL( url, target ) );
    }
 
  }
}
############
Код AS3:
import utils.js.window;
 
window.open( 'http://my-site.ru', 'test', window.BLANK, 400, 300, false );


Последний раз редактировалось catyoshi; 25.06.2009 в 13:55.
Старый 25.06.2009, 14:56
mre вне форума Посмотреть профиль Отправить личное сообщение для mre Посетить домашнюю страницу mre Найти все сообщения от mre
  № 2  
Ответить с цитированием
mre
 
Аватар для mre

Регистрация: Jul 2007
Адрес: Москва
Сообщений: 996
Код AS3:
window.open( 'http://my-site.ru', 'test', window.SELF, 400, 300, false );
__________________
Griver

Старый 25.06.2009, 15:07
catyoshi вне форума Посмотреть профиль Отправить личное сообщение для catyoshi Найти все сообщения от catyoshi
  № 3  
Ответить с цитированием
catyoshi

Регистрация: Feb 2006
Сообщений: 56
Отправить сообщение для catyoshi с помощью ICQ
mre, этот вариант не подходит.
т.к. эффект тот же самый. только пустая страница с псевдо-урл "javascript:window,open(...)" открывается не в новом окне, а в текущем.. чего уж совсем не хочется. мне надо открыть именно новое окно опрделенных размеров

Старый 25.06.2009, 15:25
mre вне форума Посмотреть профиль Отправить личное сообщение для mre Посетить домашнюю страницу mre Найти все сообщения от mre
  № 4  
Ответить с цитированием
mre
 
Аватар для mre

Регистрация: Jul 2007
Адрес: Москва
Сообщений: 996
Используйте ExternalInterface.
__________________
Griver

Старый 25.06.2009, 16:32
catyoshi вне форума Посмотреть профиль Отправить личное сообщение для catyoshi Найти все сообщения от catyoshi
  № 5  
Ответить с цитированием
catyoshi

Регистрация: Feb 2006
Сообщений: 56
Отправить сообщение для catyoshi с помощью ICQ
спасибо. так все получилось, что я хотел.
конечно, теперь флеш привзяан к javascript на странице-контейнере.. но я переживу

Старый 25.06.2009, 19:02
BlooDHounD вне форума Посмотреть профиль Отправить личное сообщение для BlooDHounD Посетить домашнюю страницу BlooDHounD Найти все сообщения от BlooDHounD
  № 6  
Ответить с цитированием
BlooDHounD
стервочка (я мужик)
 
Аватар для BlooDHounD

блогер
Регистрация: Mar 2004
Адрес: Борисов
Сообщений: 3,161
Записей в блоге: 22
яваскрипт можно генерировать из флэша

Старый 26.06.2009, 08:57
phdoc вне форума Посмотреть профиль Отправить личное сообщение для phdoc Найти все сообщения от phdoc
  № 7  
Ответить с цитированием
phdoc

Регистрация: Jun 2009
Сообщений: 5
Цитата:
Сообщение от BlooDHounD Посмотреть сообщение
яваскрипт можно генерировать из флэша
Для ExternalInterface? Если не трудно, то можно чуть подробнее?

Старый 26.06.2009, 10:20
BlooDHounD вне форума Посмотреть профиль Отправить личное сообщение для BlooDHounD Посетить домашнюю страницу BlooDHounD Найти все сообщения от BlooDHounD
  № 8  
Ответить с цитированием
BlooDHounD
стервочка (я мужик)
 
Аватар для BlooDHounD

блогер
Регистрация: Mar 2004
Адрес: Борисов
Сообщений: 3,161
Записей в блоге: 22
Код AS3:
ExternalInterface.call( 'function(a) { alert( a ); }', 555 );

Старый 26.06.2009, 11:04
phdoc вне форума Посмотреть профиль Отправить личное сообщение для phdoc Найти все сообщения от phdoc
  № 9  
Ответить с цитированием
phdoc

Регистрация: Jun 2009
Сообщений: 5
Цитата:
Сообщение от BlooDHounD Посмотреть сообщение
Код AS3:
ExternalInterface.call( 'function(a) { alert( a ); }', 555 );
Спасибо. до анонимной функции я не додумался.
А интересно, насколько ограничена длина functionName:String...

Старый 26.06.2009, 11:09
BlooDHounD вне форума Посмотреть профиль Отправить личное сообщение для BlooDHounD Посетить домашнюю страницу BlooDHounD Найти все сообщения от BlooDHounD
  № 10  
Ответить с цитированием
BlooDHounD
стервочка (я мужик)
 
Аватар для BlooDHounD

блогер
Регистрация: Mar 2004
Адрес: Борисов
Сообщений: 3,161
Записей в блоге: 22
не очень много. проверьте

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

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

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


 


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


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