Вывод трассировки Flash в Firefox, Linux - PullRequest
4 голосов
/ 05 мая 2009

Я разрабатываю приложения, которые запущены на сервере на моем рабочем столе Linux. Из-за недостатков Flash в Linux (читай: слишком сложно) я разрабатываю (маленькую) часть приложения для флэш-памяти в Windows, что означает много разочарований. Сейчас я пытаюсь захватить вывод части вспышки, используя flash tracer, и это тоже очень сложно. Есть ли другой способ, которым я мог бы отслеживать вывод трассировки в Linux? Спасибо ...

Ответы [ 6 ]

5 голосов
/ 06 мая 2009

Надеюсь, это тоже поможет (ради поиска в Google, с которого я пришел):

Чтобы выполнить трассировку, вам нужна отладочная версия Flash Player от http://www.adobe.com/support/flashplayer/downloads.html (специально ищите версию "отладчик" - их трудно обнаружить с первого взгляда)

Затем в вашем доме файл mm.cfg, содержащий

ErrorReportingEnable=1 TraceOutputFileEnable=1 MaxWarnings=50

И тогда все готово - перезапустите браузер. Когда начнут заполняться следы, вы найдете файл журнала в

~/.macromedia/Flash_Player/Logs/flashlog.txt

Что-то вроде

tail ~/.macromedia/Flash_Player/Logs/flashlog.txt -f

Достаточно, чтобы следовать по следу.

3 голосов
/ 06 мая 2009

Другой и ошеломляющий простой обходной путь, который я использовал годами, - это просто создать модуль вывода прямо в SWF. Все это означает комбинацию клавиш, которая прикрепляет мувиклип с текстовым полем. Все мои следы идут в это текстовое поле вместо (или в дополнение к) окна вывода. За прошедшие годы я, конечно, усовершенствовал его, сделав окно перетаскиваемым, изменяемого размера и т. Д. Но мне никогда не требовался какой-либо другой подход для простого ведения журнала, и он на 100% надежен и может использоваться на всех платформах.

[EDIT - ответ на комментарий] Там нет оповещения, совсем как функция JavaScript (). Но использовать внутреннее текстовое поле очень просто:

ACTIONSCRIPT 1 VERSION


(см. Примечания внизу)

/* import ExternalInterface package */
import flash.external.*;

/* Create a movieclip for the alert. Set an arbitrary (but very high) number for the depth
 * since we want the alert in front of everything else.
 */
var alert = this.createEmptyMovieClip("alert", 32000);
/* Create the alert textfield */
var output_txt = alert.createTextField("output_txt", 1, 0, 0, 300, 200);
output_txt.background = true;
output_txt.backgroundColor = 0xEFEFEF;
output_txt.selectable = false;
/* Set up drag behaviour */
alert.onPress = function()
{
    this.startDrag();
}
alert.onMouseUp = function()
{
    stopDrag();
}

/* I was using a button to text EI. You don't need to. */
testEI_btn.onPress = function()
{
    output_txt.text = (ExternalInterface.available);
}

Примечания: Это хорошо работает для AS1 и хорошо переведет на AS2 (лучше всего использовать строгую типизацию данных, если это не требуется). Должно работать во Flash Player 8-10. ExternalInterface был добавлен во Flash 8, поэтому он не будет работать в предыдущих версиях проигрывателя.

ACTIONSCRIPT 3 VERSION


var output_txt:TextField = new TextField();
addChild(output_txt);
output_txt.text = (String(ExternalInterface.available));

Если вы хотите немного улучшить это:

var alert:Sprite = new Sprite();
var output_txt:TextField = new TextField();
output_txt.background = true;
output_txt.backgroundColor = 0xEFEFEF;
output_txt.selectable = false;
output_txt.width = 300;
output_txt.height = 300;
alert.addChild(output_txt);
addChild(alert);

alert.addEventListener(MouseEvent.MOUSE_DOWN, drag);
alert.addEventListener(MouseEvent.MOUSE_UP, stopdrag);

output_txt.text = (String(ExternalInterface.available));

function drag(e:MouseEvent):void
{
    var alert:Sprite = e.currentTarget as Sprite;
    alert.startDrag();
}

function stopdrag(e:MouseEvent):void
{
    var alert:Sprite = e.currentTarget as Sprite;
    alert.stopDrag();
}

[/ EDIT]

1 голос
/ 05 мая 2009

Если вам нужен только вывод трассировки во время выполнения, вы можете использовать Firebug в Firefox, а затем использовать Flash.external.ExternalInterface для вызова метода console.log () Javascript, предоставляемого Firebug.

Я использовал эту стратегию несколько раз с большим успехом.

0 голосов
/ 27 июля 2009

Я использую flex-компилятор на linux для создания файлов actionScript, [embed (source = "file")] для всех своих ресурсов, включая изображения и шрифты, и я считаю, что разработка ActionScript под Linux очень удобна для разработчиков.

Опять же, меня больше всего интересует, что Flash стал дружественным к Unix, как наоборот:)

0 голосов
/ 11 мая 2009

Чтобы реализовать FlashTracer, перейдите по следующему адресу и убедитесь, что у вас последний файл. http://www.sephiroth.it/firefox/flashtracer/. Установите его и перезапустите браузер.

Перейдите на Adobe и получите последний Flash отладчик. Загрузите и установите версию Firefox, так как FlashTracer является дополнением Firefox.

Теперь, когда Firefox имеет последнюю версию Flash Debugger и Flash Tracer, нам нужно найти mm.cfg

Расположение на ПК: C:\Documents and Settings\username

Внутри mm.cfg должно быть:

ErrorReportingEnable=1
TraceOutputFileEnable=1
MaxWarnings=100 //Change to your own liking.

Как только это будет сохранено, откройте Firefox, перейдите в окно flash tracer, перейдя в меню tools> flash tracer. На всплывающей панели есть два значка в правом нижнем углу, нажмите гаечный ключ и убедитесь, что указан путь к месту сохранения вашего файла журнала. Также убедитесь, что Flash Tracer включен, внизу есть кнопка воспроизведения / паузы.

В настоящее время я использую эту реализацию и надеюсь, что она работает для вас. Flash Tracer немного устарел, но работает с новейшими версиями FireFox. Я использую его с FireFox 3.0.10.

0 голосов
/ 05 мая 2009

Thunderbolt - это отличный каркас для ведения журналов со встроенной поддержкой firebug.

...