Вопрос/Ответ

Если вы не нашли в блоге ответа на ваш вопрос, спрашивайте в комментариях к этой статье. Вы также можете заказать подробную статью на любую тематику связанную с Flash-разработкой.
Эту статью прочитали 2551 раз



Комментарии ВКонтакте:




Комментарии Facebook:




Комментарии WordPress:


  1. Xumar


    package
    {
    import caurina.transitions.Tweener;

    import flash.display.Sprite;
    import flash.events.Event;
    import flash.events.MouseEvent;
    import flash.utils.Timer;

    public class ChasticsDemo extends Sprite
    {
    private var timer:Number = 10;
    private var emiterX:Number = stage.stageWidth*Math.random();
    private var emiterY:Number = stage.stageHeight*Math.random();

    public function ChasticsDemo()
    {
    for(var i:uint = 0;i<100;i++)
    {

    var p:Mc = new Mc();
    p.x = emiterX;
    p.y = emiterY;
    buttonMode = true;
    Tweener.addTween(p, {x:Math.random()*550,
    y:Math.random()*440,
    time:5,
    _color:0x50ffffff,
    alpha:Math.random()*0.5,
    transition:"easeOutElastic"});
    addChild(p);

    }

    }

    }
    }


    В данном примере у меня в цикле создаются 100 квадратиков , подскажите как к каждому квадратику прикрепить ссылку , наверно как то с помощью массива ???

    1. sam Автор записи

      что значит “прикрепить ссылку”? Вы хотите что бы при клике на каждый квадрат открывалась новая уникальная ссылка?

  2. sam Автор записи

    Есть масса способов это реализовать. Один из них:

    package
    {
    import caurina.transitions.Tweener;

    import flash.display.MovieClip;
    import flash.display.Sprite;
    import flash.events.Event;
    import flash.events.MouseEvent;
    import flash.net.URLRequest;
    import flash.net.navigateToURL;
    import flash.utils.Timer;

    public class ChasticsDemo extends Sprite
    {
    private var timer:Number = 10;
    private var emiterX:Number = stage.stageWidth*Math.random();
    private var emiterY:Number = stage.stageHeight*Math.random();

    private var urlList:Array; // массив содержащий ссылки
    private var mcList:Array; // массив содержащий квадраты
    public function ChasticsDemo()
    {
    // инициализируем и заполняем массив ссылок
    urlList = new Array();
    urlList.push('http://flashpress.ru/blog');
    urlList.push('http://adobe.com');
    .....
    //
    // инициализируем массив квадратов
    mcList = new Array();
    //
    for(var i:uint = 0;i<100;i++)
    {
    var p:Mc = new Mc();
    p.x = emiterX;
    p.y = emiterY;
    buttonMode = true;
    Tweener.addTween(p, {x:Math.random()*550,
    y:Math.random()*440,
    time:5,
    _color:0x50ffffff,
    alpha:Math.random()*0.5,
    transition:"easeOutElastic"});
    addChild(p);
    //
    mcList.push(p); // заполняем массив квадратов
    p.addEventListener(MouseEvent.CLICK, clickHandler); // слушаем событие CLICK
    }

    }

    private function clickHandler(event:MouseEvent):void
    {
    // определяем на каком элементе был клик
    var p:Mc = event.target as Mc;
    // определяем индекс квадрата
    var index:int = mcList.indexOf(p);
    // зная индекс квадрата - получаем url для этого квадрата
    var url:String = urlList[index];
    // открываем ссылку
    navigateToURL(new URLRequest(url));
    }
    }
    }

    Заполнять массив из 100 ссылок вручную в коде будет не очень красиво. Лучше создать XML файл с описанием всех ссылок, распарсить строку и заполнить массив ссылками. О том как из XML строки получить массив можно посмотреть в статье

  3. Xumar

    Привет Автору)) вопрос такой как в Flash Bulldere 4.7 сделать проект без участия FLASH IDE CS 6 ???

    1. Serious Sam Автор записи

      FlashBuilder по умолчанию работает без участия FlashIDE. Создайте новый проект выбрав пункт меню File->New->Action Script Project. Далее пишите код в созданном классе и нажимаете Ctrl+F11 (пункт меню Run->Debug).

    1. Serious Sam Автор записи

      Метод Math.atan2(y1,x1) служит для определения угла вектора от точки {0, 0} до точки {x1, y1}. Метод возвращает угол в радианах.

  4. skyisclear

    здравтсвуйте, я новичок, и есть необходимость сделать баннер с ротацией нескольких картинок. картинки можно листать и с каждой картинки при этом своя ссылка на разные странички.
    как сделать весь инет перерыл а не нашел как..

    1. Serious Sam Автор записи

      Я уже отвечал на подобный вопрос чуть выше на этой странице. Что бы дать вам более подробный ответ с примером кода, я должен знать как вы создаете свой банер? Можете выложить сюда код вашего банера?

  5. skyisclear

    доброе утро! у меня возникла проблема, я повесил баннер, но при клики он открывает урл в той же самой вкладке и переходит. а мне надо чтобы открывал внешний сайт на новой вкладке
    напомню код, кот сейчас!

    myButton.onRelease = function()
    {
    getURL(“http://www.top-shop.ru/product/61093-redmond-rmc-m90/?utm_source=adgadget&utm_medium=cpc&utm_campaign=Test”);
    }

    1. Serious Sam Автор записи

      Утро доброе :) функция gerURL может принимать 3 значения:
      getURL(url, window, method);, где
      url : ваша ссылка
      window : в каком окне/фрейме открывать ссылку (то что вам нужно)
      method : не обязательный параметр, принимает значения POST или GET, по умолчанию GET.

      В вашем случае для того что бы открыть ссылку в новом окне необходимо вызвать функцию getURL следующим образом:
      myButton.onRelease = function()
      {
      getURL(url, “_blank”);
      }

      P.S. Данный код написан на ActionScript2.0, если вы пишите на языке ActionScript3.0, то для перехода на другую страницу воспользуйтесь методом:
      navigateToURL(new URLRequest(‘http://flashpress.ru/blog’, ‘_blank’));

  6. Артур

    Хотелось бы увидеть блог о том как подключить свое
    приложение к серверу, посылать и читать информацию на нем. Если не трудно могли бы вы сделать блог на эту тему

    1. Serious Sam Автор записи

      Конечно, следующая статья будет на тему “Как работать с сервером с помощью ActionScript. Http и Socket соединения”

    2. Serious Sam Автор записи

      Первая статья из серии статей, посвященных работе с сервером, готова и лежит здесь: http://flashpress.ru/blog/server-part1/. Думаю вам интереснее будет почитать вторую статью из серии – она будет готова в ближайшие дни. Следите за новостями на нашей странице ВКонтакте, и вы узнаете первыми о выходе новых статей :)

  7. Николай

    Здравствуйте, мне очень понравилась Ваша идея)
    Созрел вопрос: как реализовтаь автообновление приложения в AIR под Windows. Как бороться с возникающими ошибками?

    1. Serious Sam Автор записи

      Добрый день, Николай.
      Если вы хотите заставить всех кто скачал приложение AIR(exe файл) обновить программу – используйте в приложении модуль-загрзучик. Т.е. у вас в основном приложении есть всего один класс, которые загружает остальные флешки-модули. Так вот этот основной класс может периодически делать запрос на ваш сервер, и при наличии новой версии скачивать новые флешки-модули вашего приложения. Далее эти флешки сохраняются в каталоге приложения. А вообще это интересная тема для новой статьи :) если интересно – напишу подробную статью.

      1. Николай

        мммм, да хотелось бы подробной статьи.
        я использовал стандартный класс air.update.ApplicationUpdater и ничего не выходит. Не понимаю.. то ли я неверно xml файл настройки автообновления сконфигурировал, то ли в коде ошибка, то ли вообще в подходе..

        буду ждать тогда подробной статьи )

    2. Serious Sam Автор записи

      Как бороться с возникающими ошибками? Поясните пожалуйста вопрос :) Если вы хотите узнать о всех случаях возникновения ошибки можно поступить следующим образом: Флешка слушает событие loaderInfo.uncaughtErrorEvents.addEventListener(UncaughtErrorEvent.UNCAUGHT_ERROR, onUncaughtError);. Оно возникает когда во флешке произошел не предвиденный error. Далее флешка полученную строку с ошибкой отправляет на ваш сервер, для дальнейшего анализа.

  8. menemty

    Здравствуйте! А не могли бы вы в категории p2p http://flashpress.ru/blog/category/p2p/ разобрать какой-нибудь простенький пример , с функционалом похожим на чат-рулетку (на хабре был такой пост, в 50 строчек, но ничего не понятно и там не объясняют для новичков).

    Ну вот мне было бы интересно узнать, как сделать чтобы соединялись 2 случайных человека и которые могли бы общаться (аудио + p2p, дабы не грузить сервер). Ну если чуть сложнее, то чтобы можно было бы выбирать комнаты и тд.

    Вот такую статью хотелось бы прочитать.

    Спасибо.

    1. Serious Sam Автор записи

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

  9. Lulu

    Если нажать кнопку круг двигается на 100 пунктов вниз.Если значение круга стало больше 300, то при нажатии кнопки круг прыгнет на 0. Как записать ?

  10. Алексей

    Добрый день!
    Хотелось бы увидеть статью по основам взаимодействия с внешними серверами(сетевое программирование).
    1)POST\GET
    2)Различные форматы приема (XML STRING JSON) и способы обработки этой информации

  11. Роман

    Доброго дня!
    В одной книге встретил следующий код:

    Объясни пожалуйста что это значит

    1. Serious Sam Автор записи

      Приветствую!
      1) “tile_movieclip” – это название класса какого то мувиклипа. Скорее всего в Adove Flash Prfessional в библиотеке есть мувик у которого задан id-экспорта таким значением.
      2) Объект “e” я полагаю это какое то событие: MouseEvent, Event ….
      3) Оператор “as” приводит тип к нужному. Если подробнее, то: свойство e.currentTraget имеет тип Object. И если написать просто

      то вы получите ошибку о том, что объект типа Object нельзя присвоить объекту типа tile_movieclip. Оператор “as” как раз переводит тип Object в tile_movieclip.

      Почитайте раздел Ch1.Part6.1. Класс Object и преобразования типов из книги нашего блога.

      1. Роман

        прочел раздел, но не понятно почему:

        в этой же строчке присваевается число 3 объекту типа int, почему тогда к примеру записывается не так: