Обратитесь за помощью!Поэтому я делаю приложение AIR, которое загружает SWF-файлы в контейнер для просмотра пользователем.Однако когда я загружаю файлы в их контейнеры, загруженные SWF-файлы не могут выполнять свой собственный код.IE нажимает невидимую кнопку на загруженном SWF и она меняет цвет.Я пытался найти решения Google для этого, так как Security.allowDomain ("*");выдает эту ошибку во флэш-памяти.Однако из того, что я прочитал, AIR не позволяет загруженным SWF-файлам выполнять код по какой-то причине, но я также не уверен на 100% в этом.
SecurityError: Error #3207: Application-sandbox content cannot access this feature.
at flash.system::Security$/allowDomain()
at BugFree()[D:\Desktop\BugFree\BugFree.as:72]
Без домена Allow выдает эту ошибку безопасности, когдапопытка нажать невидимую кнопку.
*** Security Sandbox Violation ***
SecurityDomain 'file:///D:/Desktop/Rewritten Tester/TechDemoSwordNew.swf'
tried to access incompatible context 'app:/BugFree.swf'
*** Security Sandbox Violation ***
SecurityDomain 'file:///D:/Desktop/Rewritten Tester/TechDemoSwordNew.swf'
tried to access incompatible context 'app:/BugFree.swf'
SecurityError: Error #2047: Security sandbox violation: parent:
file:///D:/Desktop/Rewritten Tester/TechDemoSwordNew.swf cannot access
app:/BugFree.swf.
at flash.display::DisplayObject/get parent()
at TechDemoSwordNew_fla::Button_Play_21/onButtonPress()
Отображается только на панели вывода Animate.Когда я публикую его с приложением во время выполнения и открою исполняемый файл, он не выдаст никаких ошибок, но невидимая кнопка все еще не работает.
Вот код загружаемого SWF-файла.
btnButton.addEventListener(MouseEvent.CLICK, onButtonPress, false, 0, true);
function onButtonPress(event:MouseEvent):void
{
MovieClip(parent).play();
}
stop();
Это код временной шкалы внутри кнопки, поскольку именно так поступила игровая компания, которая поместила мой предмет в игру.Первоначально я представил его со всем, что сделано в классах, но это не главное.При нажатии кнопки загруженный SWF-файл должен воспроизводиться, а затем останавливаться.Но я получаю вышеупомянутое нарушение Песочницы.
Код, используемый для загрузки SWF, ниже
public function WeaponLoad()
{
if(FileMenu.WeaponFileTxt.text != "")
{
LoadWeapon(FileMenu.WeaponFile.nativePath);
}
else if(FileMenu.WeaponFileTxt.text == "")
{
Character.mcChar.weapon.removeChildAt(0);
Character.mcChar.weaponOff.removeChildAt(0);
}
}
public function LoadWeapon(strFilePath: String)
{
WeaponLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, CompleteWeaponLoad);
WeaponLoader.load(new URLRequest(strFilePath), new LoaderContext(false, new ApplicationDomain(ApplicationDomain.currentDomain)));
}
public function CompleteWeaponLoad(e: Event)
{
var WeaponClass: Class;
if (MiscMenu.WeaponSelect.MainClick.currentFrame != 3)
{
try
{
trace("WeaponOff");
WeaponClass = WeaponLoader.contentLoaderInfo.applicationDomain.getDefinition(FileMenu.WeaponLinkTxt.text) as Class;
this.Character.mcChar.weapon.removeChildAt(0);
this.Character.mcChar.weaponOff.removeChildAt(0);
this.Character.mcChar.weapon.addChild(new(WeaponClass)());
}
catch (err: Error)
{
trace("Either the weapon class doesnt exist or it is wrong");
this.Character.mcChar.weapon.removeChildAt(0);
this.Character.mcChar.weaponOff.removeChildAt(0);
}
}
else if (MiscMenu.WeaponSelect.MainClick.currentFrame == 3)
{
try
{
WeaponClass = WeaponLoader.contentLoaderInfo.applicationDomain.getDefinition(FileMenu.WeaponLinkTxt.text) as Class;
this.Character.mcChar.weapon.removeChildAt(0);
this.Character.mcChar.weaponOff.removeChildAt(0);
this.Character.mcChar.weapon.addChild(new(WeaponClass)());
this.Character.mcChar.weaponOff.addChild(new(WeaponClass)());
}
catch (err: Error)
{
trace("Either the weapon class doesnt exist or it is wrong");
this.Character.mcChar.weapon.removeChildAt(0);
this.Character.mcChar.weaponOff.removeChildAt(0);
}
}
}
Любая помощь будет оценена, поскольку я не знаю, как изменить какие-либо параметры изолированной программной среды безопасности в настройках публикации, поскольку она неактивна.для меня.Как я уже говорил, я пытался найти его в Google, но я не мог найти никаких ответов.Также стоит отметить, что я новичок-самоучка, и я не знаю много вещей относительно AS3.Я знаю, что мои коды могут быть чище, и я планирую очистить их и правильно сократить потребление памяти, как только у меня будет запущена и запущена базовая программа.Спасибо за помощь!