Posts Tagged ‘swf’



10
Авг
Comments Off

InDesign, особенности экспорта во flash

Делаю интерактивную презентацию. Верстку экспортирую прямо в fla файл из InDesign. В принципе все проходит нормально за исключением одного неприятного глюка: при экспорте текстовые строки бьются на части и если в текстовом боксе нет ничего кроме пробелов… то вас ждут неприятности.

Когда я в action script пытался получить размеры мувиклипа (ширину или высоту) содержащего текстовые блоки только с одним или двумя пробелами, то получал на выходе невероятное число типа 25 000 000 пикселей. Я довольно долго вычислял, что является причиной этого глюка, но в конце концов понял, что виноваты эти маленькие, коварные текстовые блочки с пробелами. как только эти блоки убираешь, то все нормализуется.

Учитывая объем этой презентации - 120 страниц, пришлось написать скрипт, который убирает эти пробелы автоматом, весьма удобное мероприятие вот примерно такой:

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
var flash_doc = fl.getDocumentDOM();
var flash_tl = flash_doc.getTimeline();

var lib = fl.getDocumentDOM().library;
var itemNo = 1;
var itemName = 'SpreadsEng/Spread_0' + itemNo;
var myArray = new Array();

while (lib.itemExists(itemName))
  {
        var myArray = new Array();

        lib.editItem(itemName);
        curr_tl = flash_doc.getTimeline();
        flash_doc.selectAll();
        var theSelectionArray = fl.getDocumentDOM().selection;
       
        for(var i=0;i<theSelectionArray.length;i++){
                if (theSelectionArray[i].elementType == "text"){
                    var str = theSelectionArray[i].getTextString();
                    if (str.length == 2) {
                        //fl.trace(itemName+ "  element space >" + str.charCodeAt(0) + "<   string: " + str);
                        //поиск двух пробелов
                        if (str == "  ") {
                            fl.trace("two spaces!!!");
                            myArray.push(theSelectionArray[i]);
                            }
                            //поиск одного пробела 32, 9
                        /*if (str.charCodeAt(0) == 32){
                            fl.trace(itemName+ "  element space >" + str.charCodeAt(0) + "<   string: " + str);
                            myArray.push(theSelectionArray[i]);
                        } */

                    }
                }
            }
     flash_doc.selectNone();
     flash_doc.selection = myArray;
       
        if (myArray.length >0) {
                flash_doc.deleteSelection();
        }
        itemNo++;
     if (itemNo <10){
        itemName = 'SpreadsEng/Spread_0' + itemNo;
    } else {
        itemName = 'SpreadsEng/Spread_' + itemNo;
    }
   
 }

Скрипт надо сохранить в папке
C:\Users\user\AppData\Local\Adobe\Flash CS5\en_US\Configuration\Commands
и он появится в меню Commands во Flash IDE.

26
Фев
Comments Off

Создание скринсейверов для Windows из swf

mainwindow2Мне уже несколько раз приходилось сталкиваться с задачей создания скринсейвера из flash. Раньше я пользовался програмкой Flash screensaver master, все бы ничего, но во-первых она не бесплатная, во-вторых спустя год использования все антивирусы как один начали выть, что в скринсейверах есть spyware, а после перезда на windows 7 я и вовсе ее не смог поставить, т.к. антивирус лихо удалил основной экзешник, опять-таки заподозрив в нем вирус.

Порыскав в сети я обнаружил весьма неплохую альтернативу - Instant Storm.

  • Во-первых, это совершенно бесплатная программа (авторы предлагают сделать им добровольный взнос если понравиться).
  • Во-вторых она гораздо более функциональна чем вышеназванный предшественник. Главное, что скачивать для использования нужно обязательно только версию 2.0Rc (release candidate), т.к. версия предлагаемая в качестве основной, производит кривые скринсейверы (где-то они работают, а где-то нет).

Итак, чем же мне так понравился Instant Storm?

1. У него есть возможность создавать собственные панели настройки для скринсейвера. В качестве панели настроек можно подсунуть собственный swf. Я пока не исследовал эту часть.

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

3. 2-я версия поддерживает Flash CS4 (Flash Player 10).

4. Есть внятная онлайновая инструкция и живой форум пользователей, правда на английском.

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

Несколько слов о том каким должен быть swf для скринсейвера. Слов даже не несколько, оно одно - “любым”. Я скармливал как обыкновенный swf сделанный на таймлайне, так и ролик полностью написанный на ActionScript, да еще и качающий фотографии из папки на жестком диске для своей работы - работает все отлично.

Вобщем к чему все это я? Да вот: очень советую Instant Storm, хорошая штука,  денег я парням не платил еще, так хотя бы рекламу им сделаю.

Celadon theme by the Themes Boutique