Каков наилучший способ отладки внутреннего SWF-файла, который загружен из неотладочного внешнего SWF-файла? - PullRequest
1 голос
/ 05 апреля 2009

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

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

Возможно ли это?

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

Есть мысли? Я что-то упускаю из виду?

Ответы [ 2 ]

1 голос
/ 05 апреля 2009

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

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

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

package com.what.ever
{
    public class ApplicationClassInDebugContainer
    {
    }
}
1 голос
/ 05 апреля 2009

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

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

...