aaa*_*dan 8 debugging flash actionscript-3
有没有办法使用Flash(CS3 + AS3)来确定发布的swf是在调试播放器中还是在Flash的调试模式下运行?
我知道,Flex提供的能力设置不同的构建目标(发布/调试),并可以使用类似CONFIG::debug的#ifdef风格入选的代码在编译时.
我想象的东西System.isDebug()却找不到任何东西.我想使用它,因为我的应用程序中有调试功能,我绝对不希望在生产环境中可用.
The*_*ain 20
该类提供了两个相关(和不同)的信息:
Capabilities.isDebugger仅回答第二个问题 - 是运行Flash调试播放器的用户.在您的情况下,要在调试版本上为应用程序的某些部分提供门控,您需要-debug构建检查(然后不要将-debug构建交付到生产中).
但请注意,这两项检查都是运行时检查.在调试代码周围使用条件编译(也称为CONFIG :: debug)仍然是一个好主意,因为它将确保在最终的SWF中不会传递可能敏感的调试代码,从而使其尽可能小且安全.
我正在复制引用的代码,以防博客链接出现故障:
package org.adm.runtime
{
import flash.system.Capabilities;
public class ModeCheck
{
/**
* Returns true if the user is running the app on a Debug Flash Player.
* Uses the Capabilities class
**/
public static function isDebugPlayer() : Boolean
{
return Capabilities.isDebugger;
}
/**
* Returns true if the swf is built in debug mode
**/
public static function isDebugBuild() : Boolean
{
var stackTrace:String = new Error().getStackTrace();
return (stackTrace && stackTrace.search(/:[0-9]+]$/m) > -1);
}
/**
* Returns true if the swf is built in release mode
**/
public static function isReleaseBuild() : Boolean
{
return !isDebugBuild();
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8719 次 |
| 最近记录: |