http://flashteam.tencent.com/post/288/foreac/
ApplicationDomain.currentDomain的细节
Published by Demon.S
平时使用这个属性的时候,一般不会注意什么,直接无脑拿来用的。。。
今天作一些代码验证时,发现了一个问题:
trace(ApplicationDomain.currentDomain==ApplicationDomain.currentDomain)
直接这样判断居然是不相等的!
于是查找了下帮助,上面写着:
currentDomain property
currentDomain:ApplicationDomain [read-only]
Language Version: ActionScript 3.0
Runtime Versions: AIR 1.0 Flash Player 9, Flash Lite 4
Gets the current application domain in which your code is executing.
Implementation
public static function get currentDomain():ApplicationDomain
貌似看起来没啥帮助,直接理解基本上就是一个只读指针了,怎么会同样的东东不一致呢。
分析估计是一个工厂模式的实现,即每次会找到stage的所在,然后包装成一个新的ApplicationDomain返回。
这样用对于URLLoader使用loadercontext时略方便,以及在无法获得stage的情况下也能够正确得到applicationDomain。
但每次不一致有时还是很纠结
不过好在每个loaderinfo的applicationDomain是真正的只读指针,即下面这样用肯定是会相等的:
trace(stage.loaderInfo.applicationDomain==stage.loaderInfo.applicationDomain)
既然ApplicationDomain.currentDomain不能直接的得到stage的applicationDomain的直接引用,也不能判断多domain的情况的正确性对比,所以要用的话最好还是单独封装到一个另一个静态类中,如StageApplicationDomain.currentDomain,并且由stage初始化时简单赋值即可。。。
真不知道adobe咋想的,简单做成一个指针不就得了……
分享到:
相关推荐
// context.applicationDomain = new ApplicationDomain(ApplicationDomain.currentDomain); loader.load(urlRequest, context); ``` 2. **从加载的SWF文件中获取类定义并实例化**: ```as3 // ...
context.applicationDomain = new ApplicationDomain(ApplicationDomain.currentDomain); context.applicationDomain = ApplicationDomain.currentDomain; context.applicationDomain = new ApplicationDomain(); ...
- **创建应用程序域**:可以通过 `AppDomainSetup` 类来设置应用程序域的属性,然后使用 `AppDomain.CreateDomain` 方法来创建一个新的应用程序域。 - **加载程序集**:可以在创建应用程序域后,使用 `AppDomain....
var parentAppDomain:ApplicationDomain = ApplicationDomain.currentDomain; var childAppDomain:ApplicationDomain = new ApplicationDomain(parentAppDomain); ``` 这段代码展示了如何创建一个新的应用程序域,...
通过`ApplicationDomain.currentDomain`可以访问当前运行时的ApplicationDomain,然后使用`loadClassFile()`或`loadScript()`方法加载类文件。 2. 类的查找:一旦类被加载,可以通过`hasDefinition()`方法来检查...
获取当前目录可以使用 代码如下:appdomain.currentdomain.basedirectory 获取当前目录的上级目录 代码如下:path.getfullpath(“..”) 具体代码如下: 代码如下:using system; using system.collections.generic; ...
这个属性与`System.AppDomain.CurrentDomain.BaseDirectory`相似,都是获取包含应用程序的目录,但可能在某些情况下有所不同,例如在自定义部署场景下。 6. **`System.Windows.Forms.Application.StartupPath`** ...
通过使用System.Windows.Forms.Application.StartupPath可以获取启动了应用程序的可执行文件的路径,不包括可执行文件的名称。例如: string str = System.Windows.Forms.Application.StartupPath; Result: C:xxxxxx...
打开数据库连接 string dataDir = AppDomain.CurrentDomain.BaseDirectory; if (dataDir.EndsWith(@"\bin\Debug\") || dataDir.EndsWith(@"\bin\Release\")) { dataDir = System.IO.Directory.GetParent(dataDir...
7. **`AppDomain.CurrentDomain.SetupInformation.ApplicationBase`**:返回应用程序的基础目录,这对于Web应用程序尤其有用。 #### 三、具体实现方法详解 下面我们将逐一分析每种方法的实现细节: ##### 1. `...
### 方法一:使用 `System.AppDomain.CurrentDomain.BaseDirectory` 在.NET框架中,`System.AppDomain.CurrentDomain.BaseDirectory` 属性可以用来获取当前应用程序域的基本目录。这个目录通常是应用程序的根目录,...
`System.Windows.Forms.Application.ExecutablePath` 返回当前正在运行的应用程序的完整可执行文件路径,包括文件名和扩展名。这是获取当前程序路径的另一种常见方式。 ### 7. System.IO.Directory....
AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler(CurrentDomain_AssemblyResolve);//添加代码 InitializeComponent(); JObject obj = new JObject(); } //添加代码 System.Reflection....
1. **AppDomain.CurrentDomain.BaseDirectory** 或 **System.Threading.Thread.GetDomain().BaseDirectory** ```csharp string path = AppDomain.CurrentDomain.BaseDirectory; ``` 2. **Environment.Current...
context.applicationDomain.loadClass("MyComponent"); var loader:Loader = new Loader(); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onSWFLoaded); loader.load(new URLRequest("path_to_your_...
//可获得当前执行的exe的文件名。 string str1 =Process.GetCurrentProcess().MainModule.FileName;// 获取和设置当前目录(即该进程从中启动...string str7=AppDomain.CurrentDomain.SetupInformation.ApplicationBase
2. **`AppDomain.CurrentDomain.BaseDirectory`**:此属性返回应用程序域的基目录。它通常指向应用程序执行文件所在的位置,因此可以用来获取应用程序的根目录。 ```csharp string baseDirectory = AppDomain....
2. `AppDomain.CurrentDomain.BaseDirectory`:获取基目录,它由程序集冲突解决程序用来探测程序集。 Web 应用程序获取文件路径 在 Web 应用程序中,可以使用以下方法获取文件路径: 1. `HttpRuntime....
string applicationBase = System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase; ``` #### 6. System.Windows.Forms.Application.StartupPath 此方法用于获取应用程序的启动路径。这个路径通常是指...