Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Вставить текст-ссылку в AS3 (http://www.flasher.ru/forum/showthread.php?t=203311)

Aprel 14.09.2013 22:01

Вставить текст-ссылку в AS3
 
Здравствуйте!
Подскажите, пожалуйста, как вставить текст-ссылку в этот AS3. Нашла классные исходники галереи-клипа FullScreenLib, а как сверху сделать текст-ссылку на возврат на главную страничку не знаю (гуглила, пробовала читать Руководство AS3...). HTML5, CSS3 запросто, а вот в вашей кухне ни бум-бум... Спасибо.

Код AS3:

package 
{
        import com.gfxcomplex.display.PanningFullScreenImage;
        import flash.display.Sprite;
        import flash.display.StageDisplayState;
        import flash.events.Event;
        import flash.events.MouseEvent;
        import flash.events.ProgressEvent;
 
        public class PanningMain extends Sprite
        {
  private var testing:PanningFullScreenImage;
 
  public function PanningMain():void
  {
          if (stage)
          {
    init();
          }
          else
          {
    addEventListener(Event.ADDED_TO_STAGE, init);
          }
  }
 
  private function init(e:Event = null):void
  {
          removeEventListener(Event.ADDED_TO_STAGE, init);
 
          testing = new PanningFullScreenImage("img/001.jpg",true);
          testing.addEventListener(Event.COMPLETE, onComplete);
          testing.addEventListener(ProgressEvent.PROGRESS, onProgress);
          addChild(testing);
 
          stage.addEventListener(MouseEvent.CLICK, onClick);
  }
 
  private function onClick(e:MouseEvent):void
  {
          stage.displayState = StageDisplayState.FULL_SCREEN;
  }
 
  private function onProgress(e:ProgressEvent):void
  {
          trace(String(int((e.bytesLoaded / e.bytesTotal) * 100)));
          loading_txt.text = String(int((e.bytesLoaded / e.bytesTotal) * 100));
  }
 
  private function onComplete(e:Event):void
  {
          trace(e);
  }
 
        }
 
}


Wolsh 14.09.2013 22:43

Aprel, для оформления своего кода надо использовать теги [as3][/as3]

Aprel 14.09.2013 22:54

Пасибы, учла... А подсказку на вопрос зажали? Я тогда Вас в Питере на вопрос: "Как доехать до Русского музея" на Лиговку отправлю...)

Bletraut 14.09.2013 23:30

Я не работал с подобной библиотекой, но могу как решение предложить повесить на какой-то объект слушатель и заново загрузить эту библиотеку т.е.

Код AS3:

//Пишем в инит
stage.addEventListener(MouseEvent.DOUBLE_CLICK, resetTesting);
 
//Пишем в коде
public function resetTesting(e:MouseEvent):void
{
  testing = new PanningFullScreenImage("img/001.jpg",true);
}

Теперь возможно при двойном клике галерея будет с первой картинки показываться.

C4Grey 14.09.2013 23:31

Используя TextFormat:
Код AS3:

var Format:TextFormat = new TextFormat('Calibri', 18);
Format.underline = true;
Format.target = '_blank';
Format.url = 'http://127.0.0.1';
var Text:TextField = new TextField();
Text.defaultTextFormat = Format;
Text.text = 'Click me';
addChild(Text);

Используя события клика и navigateToURL:
Код AS3:

var Text:TextFiled = new TextFiled();
Text.text = 'Click me';
addChild(Text);
Text.addEventListener(MouseEvent.CLICK, OnTextClick);
...
private function OnTextClick(e:MouseEvent):void
{
        navigateToURL('http://127.0.0.1');
}

Второй метод сгодится в случае, если нужна навигация внутри флешки, а не по URL(на случай если я неверно понял вопрос). Ну и, само-собой, их можно комбинировать. Чтобы разместить текст в нужных координатах, следует воспользоваться свойствами Text.x и Text.y.

Aprel 15.09.2013 00:28

C4Grey не получилось...( Не рычи, я сама дура в as3... Я 3 дня ляпала с учебников и нифика... CS6 выдает ошибки 1071 и 1084... Ваще голова кругом идет

C4Grey 15.09.2013 01:00

1071 - скорее всего, при объявлении переменной где-то нет ключевого слова var
1084 - где-то не закрыта скобка
FlashDevelop умеет показывать места в коде, где случаются подобные ошибки(возможно, и Flash CS6 умеет, уже и не помню).

Aprel 15.09.2013 01:32

C4Grey Ага... объяснил! Блондинке... ! Точно все на Лиговке будут искать Русский музей и Эрмитаж..) СерыйС4, моно подробнее..

C4Grey 15.09.2013 04:35

Измененная функция init, которая гарантировано работает:
Код AS3:

private function init(e:Event = null):void
{
        removeEventListener(Event.ADDED_TO_STAGE, init);
 
        testing = new PanningFullScreenImage("http://upload.wikimedia.org/wikipedia/commons/6/62/Cthulhu_and_R'lyeh.jpg", true);
        addChild(testing);
 
        var Format:TextFormat = new TextFormat('Calibri', 42);
        Format.underline = true;
        Format.target = '_blank';
        Format.url = 'http://google.com';
        var Text:TextField = new TextField();
        Text.textColor = 0x9F1111;
        Text.autoSize = TextFieldAutoSize.LEFT;
        Text.defaultTextFormat = Format;
        Text.text = 'Click me';
        addChild(Text);
}

Если нужно, чтобы текст выводился не поверх картинки - необходимо менять код внутри PanningFullScreenImage, определющий границы панорамирования изображения(сейчас используются размеры всей сцены) и добавлять маску. Да, внутри PanningFullScreenImage используются сторонние компоненты(caurina.transitions.Tweener), их необходимо также подключить к проекту(если это еще не сделано, и проект в таком виде, как он представлен в 0 посте, не компилируется, иначе этот пункт можно игнорировать). Чтобы более подробно ответить на вопрос, мне нужно увидеть струтктуру проекта.

Aprel 15.09.2013 06:14

Вложений: 1
C4Grey большое спасибо за подсказки! Я попробовала, но у меня выдает ошибки 1046, 1180, 1120.... ( Все равно буду ковырять... Вы мне только подскажите направление (файлы прикреплю).


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

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