【发布时间】:2011-03-11 14:38:26
【问题描述】:
我在一个较大的文件中加载了一个 AS3 预加载电影,该文件使用 SoundMixer 来控制音量。当两个文件在同一台服务器上时,一切都在本地和在线运行良好。
但是,当我拆分文件时,假设将加载程序 swf 放在一台服务器上,将较大的内容放在另一台服务器上,当我单击音量按钮时,我收到此错误。 (这个错误实际上是在测试加载器 swf 时输出的,从在线服务器加载内容。)
Security Sandbox Violation
SecurityDomain 'http://www.onlinedomain.com/content.swf' tried to access incompatible context 'file:///LocalDisc/WORK//loader.swf'
SecurityError: Error #2070: Security sandbox violation: caller http://www.onlinedomain.com/content.swf cannot access Stage owned by file:///LocalDisc/WORK//loader.swf.
at flash.media::SoundMixer$/set soundTransform()
at content_fla::MainTimeline/stopSound()
at content_fla::MainTimeline/soundMenuHandler()
我已将crossdomain.xml 文件添加到允许访问的两台服务器。
在我的 content.swf 中处理声音的函数是:
import flash.media.Sound;
import flash.media.SoundChannel;
import flash.media.SoundMixer;
function soundMenuHandler(event:MouseEvent):void {
if (sound == "ON") {
sound_btn.gotoAndStop(3);
stopSound();
} else {
sound_btn.gotoAndStop(1);
playSound();
}
}
function playSound():void {
sound = "ON";
SoundMixer.soundTransform = new SoundTransform(1);
}
function stopSound():void {
sound = "OFF";
SoundMixer.soundTransform = new SoundTransform(0);
}
问题似乎是因为 SoundMixer 访问了loader.swf。有谁知道发生了什么以及如何解决这个问题?
【问题讨论】:
标签: flash actionscript-3