Flash AS3 SoundMixer Песочница Нарушение? - PullRequest
0 голосов
/ 11 марта 2011

У меня есть загрузка видео в 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.Кто-нибудь знает, что происходит и как это можно решить?

Ответы [ 3 ]

0 голосов
/ 12 марта 2011

Исправьте код для встраивания, если возникли проблемы с несколькими доменами. Также убедитесь, что ваш файл crossdomain.xml соответствует нормам и доставляется

allowscriptaccess = "sameDomain";
allownetworking = "all";
0 голосов
/ 13 марта 2011

Решение найдено!

Хотя файл политики crossdomain.xml включал этот домен (поэтому я не уверен, почему он не работал). Я могу явно предоставить доступ, добавив этот код в файл загрузчика.

Security.allowDomain ( "www.loadeedomain.com");

0 голосов
/ 11 марта 2011

file: ///LocalDisc/WORK//loader.swf звучит так, как будто вы тестируете локально.Для локального тестирования можно отключить проверки безопасности для файлов или папок в диспетчере безопасности Flash:

http://www.macromedia.com/support/documentation/en/flashplayer/help/settings_manager04.html#117502

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...