почему ExternalInterface доступен внутри Flash ide - PullRequest
1 голос
/ 11 января 2010

эй, я пытаюсь создать этот простой класс отладчика, чтобы я мог видеть флэш-переменные внутри консоли браузера, и если я тестирую их внутри флэш-памяти, то я получу старый добрый трассировщик. Но по какой-то причине ExternalInterface.available возвращает true внутри Flash ide!?

package libs
{
    import flash.external.ExternalInterface;

    public class debug
    {
        public function tracer(variable:*):void
        {
            if(ExternalInterface.available)
            {
                if(variable is String)
                {
                    variable = '"'+variable+'"';
                }
                ExternalInterface.call('console.log(' + variable + ')');
            }
            else
            {
                trace(variable);
            }   
        }
    }
}

Ответы [ 2 ]

5 голосов
/ 11 января 2010

Вы можете использовать flash.system.Capabilities.playerType , чтобы определить, используете ли вы flash или нет ...

import flash.system.Capabilities;

if (Capabilities.playerType == 'External')
  trace("you're in the ide");
else
  trace("you're not in the ide");
2 голосов
/ 11 января 2010

Отлично, я должен поиграть с этим.

Причина, по которой вы становитесь правдой, если используете Flash CS4 потому что сцена в среде IDE работает в SWF, и 3D вещи и кости являются звонками из IDE в stage swf с использованием ExternalInterface.

Было бы здорово взломать это! Спасибо, George

...