Как лучше всего отлаживать внутренний swf-файл, загруженный из неотладочного внешнего swf-файла?

У меня есть swf, к которому мне нужно подключить отладчик flex builder. У меня есть полный доступ к исходному коду, и я могу сделать отладочную сборку этого swf.

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

Это возможно?

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

Есть предположения? Есть ли что-то очевидное, что мне не хватает?


person Scotty Allen    schedule 04.04.2009    source источник


Ответы (2)


Интересно, что произойдет, если вы скомпилируете почти пустой SWF, который просто загружается в неотладочный SWF (который загружает файл с включенной отладкой)? т.е. DEBUG> NON-DEBUG> DEBUG ... отменяет ли не-отладочный уровень сообщения отладки для своих «потомков»?

Я считаю, что вы хотите использовать гибкий отладчик для трассировки стека и т. Д., Но хорошо использовать настраиваемый регистратор в вашем SWF, это особенно удобно, если вы хотите, чтобы кто-то удаленно отлаживал версию онлайн и т.д. последнее, что мне пришло в голову, - это ThunderBold.

person Theo.T    schedule 05.04.2009
comment
Это интересная мысль, по крайней мере, с точки зрения выяснения, почему она не работает. Не уверен, насколько это упростит мою фактическую проблему отладки, если она действительно работает :) Я в основном хочу использовать точки останова - у меня уже есть удаленное ведение журнала, но отлаживать таким образом утомительно. - person Scotty Allen; 05.04.2009

В дополнение к идее Тео вам, вероятно, потребуется ссылаться на классы в контейнере отладки. Затем, пока вы загружаете не отладочный swf в тот же (или дочерний) домен приложения (И не отладочный swf делает то же самое), вы сможете взломать swf для внутренней отладки.

Вы можете ссылаться на классы так (это запах, но даже Flex делает это внутренне):

import com.pkg.ClassToDebug; ClassToDebug;
import com.pkg.AnotherClassToDebug; AnotherClassToDebug;
// ... etc

package com.what.ever
{
    public class ApplicationClassInDebugContainer
    {
    }
}
person Richard Szalay    schedule 05.04.2009