Подскажите по ActionScript

Тема в разделе "Флеш", создана пользователем Albus_D, 27 ноя 2012.

  1. Albus_D

    Albus_D Постоялец

    Регистр.:
    20 июл 2010
    Сообщения:
    84
    Симпатии:
    4
    Подскажите как сделать такое - вероятно должно быть легко :

    Если нажата на клавиатуре любая кнопка (включая принтскрин и эскейп и другие)

    то перейти на другой кадр. Логика мне понятна а вот синтаксис экшен скрипт я совсем не знаю - подскажите плз код.
     
  2. Leony

    Leony

    Регистр.:
    18 мар 2008
    Сообщения:
    153
    Симпатии:
    25
    Если as3, то
    Код:
    stage.addEventListener(KeyboardEvent.KEY_DOWN, keyPressed);
    function keyPressed(event:KeyboardEvent){
        this.gotoAndPlay(this.currentFrame +1);
    }
     
  3. killserver

    killserver Создатель

    Регистр.:
    14 фев 2012
    Сообщения:
    23
    Симпатии:
    0
    Пишу в этой теме потому как нет возможности создать отдельную тему:(...
    Прошу подсказать...
    Задача: загрузить с сайта ссылку на видео вида: Перейти по ссылке),что именно делаю не так-не пойму...
    Я сделал так:
    Код:
                var _loc_1:* = new URLLoader(new URLRequest("http://site.ru/online.txt"));
                var _loc_2:* = new URLLoader(_loc_1);
                stage.addChild(_loc_2);
    Получил ошибку:
    Код:
    TypeError: Error #1034: Ошибка типа Coercion: невозможно преобразовать flash.net::URLLoader@253f1041 в flash.net.URLRequest.
        at shell()
     
  4. Leony

    Leony

    Регистр.:
    18 мар 2008
    Сообщения:
    153
    Симпатии:
    25
    имхо, нельзя обойти событие Event.COMPLETE – нужно дождаться загрузки, а потом уже грузить видео по загруженной строке-адресу.

    Код:
    _loc_1.addEventListener(Event.COMPLETE, функция);
    function функция(e:Event) : void {
        stage.addChild(e.target.data);
    }
     
  5. killserver

    killserver Создатель

    Регистр.:
    14 фев 2012
    Сообщения:
    23
    Симпатии:
    0
    всё равно матюкуется....
    Код:
    TypeError: Error #1034: Ошибка типа Coercion: невозможно преобразовать flash.net::URLLoader@24473041 в flash.net.URLRequest.
        at shell()
    TypeError: Error #1034: Ошибка типа Coercion: невозможно преобразовать "http://site.ru/player.swf?file=file.flv" в flash.display.DisplayObject.
        at shell/online()
        at flash.events::EventDispatcher/dispatchEventFunction()
        at flash.events::EventDispatcher/dispatchEvent()
        at flash.net::URLLoader/onComplete()
    код выглядит так:
    Код:
                var _loc_1:* = new URLLoader(new URLRequest("http://site.ru/online.txt"));
                _loc_1.addEventListener(Event.COMPLETE, online);
                var _loc_2:* = new URLLoader(_loc_1);
     
            function online(event:Event) : void {
                stage.addChild(event.target.data);
            }
    где я мог "налажать"?:confused:
     
  6. focusnick

    focusnick Постоялец

    Регистр.:
    29 июн 2012
    Сообщения:
    141
    Симпатии:
    117
    Код:
    var ldr:URLoader = new URLLoader();
    ldr.addEventListener(Event.COMPLETE, online);
    ldr.load(new URLRequest("http://site.ru/online.txt"));
     
    function online(event:Event): void 
    {
        trace(event.target.data);
    }
    
     
    killserver нравится это.
  7. killserver

    killserver Создатель

    Регистр.:
    14 фев 2012
    Сообщения:
    23
    Симпатии:
    0
    спасибо,данные получил,но при попытке вивести полученное на экран пишет,что неивестно,что за "нафиг" грузится:nezn:
    выводил на экран так:
    Код:
                lbr.contentLoaderInfo.addEventListener(Event.COMPLETE, loaded);
    дописал после:
    Код:
                lbr.load(new URLRequest("http://site.ru/online.txt"));
    и после функции online дописал:
    Код:
            function loaded(event:Event) : void
            {
                var event:* = event;
                stage.addChild(event.target.content);
                return;
            }// end function
    может и по-нубски,но так оно и есть...
    потому,как я в as3 совсем недавно,пните в нужном направлении;мануалы какие-то более-менее(с примерами желательно:) ) дайте:)
     
  8. focusnick

    focusnick Постоялец

    Регистр.:
    29 июн 2012
    Сообщения:
    141
    Симпатии:
    117
    С помощью URLLoader вы загружаете текстовые/бинарные данные. Чтобы отобразить загруженный текст на экране - сперва следует разместить на stage какой-нибудь TextField, а уже потом ему назначать text полученный по ссылке.
    Код:
    function online(event:Event): void
    {
        trace(event.target.data);
        var txt:TextField = new TextField();
        txt.width = 500;
        stage.addChild(txt);
        txt.text = String(event.target.data);
    }
    Мануалов дать не могу - сам ничего такого не читал (читайте хэлп - там все есть и даже с примерами).
     
    killserver нравится это.
  9. killserver

    killserver Создатель

    Регистр.:
    14 фев 2012
    Сообщения:
    23
    Симпатии:
    0
    Возможно Вы меня не поняли,возможно(а скорее всего так и есть) я не точно выразился...
    Я получил данные из ссылки(текст),теперь из этого текста-ссылки получить вновь данные,но уже видео(swf)...
     
  10. focusnick

    focusnick Постоялец

    Регистр.:
    29 июн 2012
    Сообщения:
    141
    Симпатии:
    117
    Если в загружаемом txt файле только ссылка на swf и ничего более, то как-то так:


    Код:
    function online(event:Event): void
    {
        trace(event.target.data);
        var loader:Loader = new Loader();
        loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onSWFLoaded);
        loader.load(new URLRequest(event.target.data));
    }
     
    function onSWFLoaded(e:Event):void
    {
        stage.addChild(e.target.content);
    }
     
    killserver нравится это.