Форум программистов, компьютерный форум, киберфорум
Наши страницы
ActionScript
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
noobPHP
0 / 0 / 0
Регистрация: 17.01.2014
Сообщений: 14
1

Работа с внешними данными

23.05.2014, 18:20. Просмотров 656. Ответов 17
Метки нет (Все метки)

Добрый день!
В файле "params.txt", к примеру содержится url: http://google.com, и я хочу получить этот url и использовать его внутри моего класса AS3.
Отправляю запрос и получаю этот урл, но могу им пользоваться только внутри обработчика "completeHandler". Метод call() интерфейса ExternalInterface не выполняется по непонятным для меня причинам...

Как мне получить этот url, занести его в поле "link", и использовать во всем коде к примеру в конструкторе?

ActionScript 3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
package  {
    
    import flash.display.MovieClip;
    import flash.external.ExternalInterface;
    import flash.events.Event;
        import flash.net.URLLoader;
        import flash.net.URLRequest;
    
    public class maink extends MovieClip {
 
        public var link:String;
        
        public function myRequest():void {
            var request:URLRequest = new URLRequest("params.txt"); 
            var loader:URLLoader = new URLLoader(); 
            loader.addEventListener(Event.COMPLETE, completeHandler); 
            loader.load(request);
        }
 
        public function completeHandler(event:Event):void 
        { 
            ExternalInterface.call("alert", event.target.data);
        } 
        
        public function maink() {
            myRequest();
        }
    }
    
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.05.2014, 18:20
Ответы с готовыми решениями:

Работа с внешними данными в Matlab
Такая проблема: Есть база данных в SQL, нужно написать приложение в Matlab,...

Не обновляются связи с внешними данными через "Диспетчер связанных таблиц"
Не обновляются связь с 1 таблицей "Заказы" через "Диспетчер связанных таблиц",...

Работа с внешними приложениями
Здравствуйте. Задание такое необходимо создать программу которая запускает...

работа с внешними ресурсами
Написать программу копирования содержимого текстового файлав конец другого...

Работа с внешними ключами
Создаю две таблицы SqlCommand cmdCreateTable = new...

17
Theoryofgames
253 / 237 / 50
Регистрация: 20.12.2011
Сообщений: 707
23.05.2014, 18:27 2
Цитата Сообщение от noobPHP Посмотреть сообщение
Как мне получить этот url, занести его в поле "link"
Вы это имеет ввиду или я вас неправильно понял?
ActionScript 3
1
2
3
4
public function completeHandler(event:Event):void 
{ 
  link = event.target.data;
}
В конструкторе вы воспользовать им не сможете, так как в момент выполнения конструктора вы еще не получили ответа на свой запрос, соответственно работать с полученным url вы можете только по колбеку.
0
noobPHP
0 / 0 / 0
Регистрация: 17.01.2014
Сообщений: 14
23.05.2014, 18:30  [ТС] 3
Пробовал не смог, получал значение null в "link", теперь ясно почему.

Хорошо, почему в обработчике "completeHandler", не выполняется ExternalInterface.call("alert", event.target.data);
0
Theoryofgames
253 / 237 / 50
Регистрация: 20.12.2011
Сообщений: 707
23.05.2014, 18:44 4
Цитата Сообщение от noobPHP Посмотреть сообщение
Хорошо, почему в обработчике "completeHandler", не выполняется ExternalInterface.call("alert", event.target.data);
А у вас запускается swf из JS обертки? откуда он берет внешний интерфейс?
0
noobPHP
0 / 0 / 0
Регистрация: 17.01.2014
Сообщений: 14
23.05.2014, 18:48  [ТС] 5
Нет не из JS обертки. Он запускается на странице html.

Если выполнять к примеру в конструкторе ExternalInterface.call("alert", "Hi"); тогда вылетает alert();
0
Theoryofgames
253 / 237 / 50
Регистрация: 20.12.2011
Сообщений: 707
23.05.2014, 18:51 6
сделайте trace(event.target.data) - что выдает?
0
noobPHP
0 / 0 / 0
Регистрация: 17.01.2014
Сообщений: 14
23.05.2014, 18:55  [ТС] 7
Самое интересное как раз в этом, если вывести данные в консоль, мы получим то что находится в файле.
Но вот External...call() не работает
0
Theoryofgames
253 / 237 / 50
Регистрация: 20.12.2011
Сообщений: 707
23.05.2014, 18:58 8
Цитата Сообщение от noobPHP Посмотреть сообщение
Самое интересное как раз в этом, если вывести данные в консоль, мы получим то что находится в файле.
Если возможно, выложите эту часть проекта, приду домой, посмторю.
0
bus
34 / 34 / 3
Регистрация: 17.05.2014
Сообщений: 144
23.05.2014, 19:48 9
И с swfobject работает ( в FD ) и без него ( в cc ). Может куки в браузере почистить?
0
noobPHP
0 / 0 / 0
Регистрация: 17.01.2014
Сообщений: 14
23.05.2014, 20:09  [ТС] 10
Все чистил.
0
bus
34 / 34 / 3
Регистрация: 17.05.2014
Сообщений: 144
23.05.2014, 20:27 11
Нет не из JS обертки. Он запускается на странице html.
А html создаваемый при компиляции?
0
noobPHP
0 / 0 / 0
Регистрация: 17.01.2014
Сообщений: 14
23.05.2014, 20:39  [ТС] 12
Немного не понимаю о чем вы)
0
bus
34 / 34 / 3
Регистрация: 17.05.2014
Сообщений: 144
23.05.2014, 20:53 13
Ну Вы сказали, что проверяете на работоспособность swf встроенную в html...
Ниже сасамый простой html, который генерируется вместе с swf, с ним все работает. И теперь повторю вопрос - Вы встраиваете флеш при помощи html которая генерируется вместе c этой самой флешкой или нет?
И вообще флеш лучше через swfobject встраивать, все нормальные ide его генирируют сами.
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="ru" xml:lang="ru">
    <head>
        <title>collection</title>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <style type="text/css" media="screen">
        html, body { height:100%; background-color: #ffffff;}
        body { margin:0; padding:0; overflow:hidden; }
        #flashContent { width:100%; height:100%; }
        </style>
    </head>
    <body>
        <div id="flashContent">
            <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="550" height="400" id="!!!" align="middle">
                <param name="movie" value="!!!.swf" />
                <param name="quality" value="high" />
                <param name="bgcolor" value="#ffffff" />
                <param name="play" value="true" />
                <param name="loop" value="true" />
                <param name="wmode" value="window" />
                <param name="scale" value="showall" />
                <param name="menu" value="true" />
                <param name="devicefont" value="false" />
                <param name="salign" value="" />
                <param name="allowScriptAccess" value="sameDomain" />
                <!--[if !IE]>-->
                <object type="application/x-shockwave-flash" data="!!!.swf" width="550" height="400">
                    <param name="movie" value="!!!.swf" />
                    <param name="quality" value="high" />
                    <param name="bgcolor" value="#ffffff" />
                    <param name="play" value="true" />
                    <param name="loop" value="true" />
                    <param name="wmode" value="window" />
                    <param name="scale" value="showall" />
                    <param name="menu" value="true" />
                    <param name="devicefont" value="false" />
                    <param name="salign" value="" />
                    <param name="allowScriptAccess" value="sameDomain" />
                <!--<![endif]-->
                    <a href="http://www.adobe.com/go/getflash">
                        <img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Загрузить Adobe Flash Player" />
                    </a>
                <!--[if !IE]>-->
                </object>
                <!--<![endif]-->
            </object>
        </div>
    </body>
</html>
1
noobPHP
0 / 0 / 0
Регистрация: 17.01.2014
Сообщений: 14
23.05.2014, 21:01  [ТС] 14
Цитата Сообщение от bus Посмотреть сообщение
Вы встраиваете флеш при помощи html которая генерируется вместе c этой самой флешкой или нет?
Нет просто встраиваю при помощи <object>
0
bus
34 / 34 / 3
Регистрация: 17.05.2014
Сообщений: 144
23.05.2014, 21:10 15
Выходит, что какой-то параметр, а возможно и не один, все-таки требуется.
Пробуйте, если получится, то отпишитесь, какой именно нужен
0
noobPHP
0 / 0 / 0
Регистрация: 17.01.2014
Сообщений: 14
23.05.2014, 21:11  [ТС] 16
дело в том что ExternalInterface.call(); не выполняется только из обработчика completeHandler()...
0
bus
34 / 34 / 3
Регистрация: 17.05.2014
Сообщений: 144
23.05.2014, 21:20 17
Цитата Сообщение от noobPHP Посмотреть сообщение
дело в том что ExternalInterface.call(); не выполняется только из обработчика completeHandler()...
Я пробовал и все выполняется!
0
bus
34 / 34 / 3
Регистрация: 17.05.2014
Сообщений: 144
23.05.2014, 21:38 18
Вот попробуйте...
0
Вложения
Тип файла: rar alert.rar (8.6 Кб, 8 просмотров)
23.05.2014, 21:38
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.05.2014, 21:38

Работа с внешними устройствами
Здравствуйте. Подскажите, пожалуйста, самый легкий на ваш взгляд пример,...

Работа с внешними приложениями
Мне нужно написать программу, которая будет создавать новые вкладки в Opere и...

Работа с внешними файлами
У меня не выходит заполнить с файла таблицу( на рисунках там второй пункт)....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru