Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Как управлять загруженым SWF? (http://www.flasher.ru/forum/showthread.php?t=142960)

Tr1te 03.08.2010 23:52

Как управлять загруженым SWF?
 
Видел похожие топики но то что там работает у меня не работает.

Есть SWF, в котором просто анимация, и больше ничего.

Загрузил ее с сервера, и когда делаю так:
Код AS3:

var Animation:MovieClip=new MovieClip();
Animation=uL_Loader.content;
addChild(Animation);
Animation.stop();

То анимация добавленная на сцену, продолжает проигрываться.
А когда на нее кликаю:

Код:

*** Нарушение безопасности изолированной среды ***
SecurityDomain "http://*********.swf" пытался получить доступ к несовместимому контексту "********"

Что я не правильно делаю?

TWETTI 04.08.2010 00:04

Попробуй положить файл политики безопасности рядом с SWF файлом который ты хочешь загрузить. И затем загрузи его:
Код AS3:

Security.loadPolicyFile("http://сайт/crossdomain.xml");


Tr1te 04.08.2010 00:11

Попробовал, тоже самое.

Пробовал даже:
Код AS3:

                        var context:LoaderContext = new LoaderContext();
                        context.securityDomain=SecurityDomain.currentDomain;

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

Добавлено через 21 минуту
Ошибка в том, что если тестить флеш с локально, то будет эта ошибка, а когда запуская с сервера, то все нормально, нет нарушения среды.

Но все же по сабжу, почему не могу управлять MovieClip'ом?

Alex Lexcuk 04.08.2010 00:50

Поглядите как управлять
http://www.murmadillo.tut.su/as3/load-swf-metod.html

Tr1te 04.08.2010 09:07

Смотрел, и чем моя отличается?

-De- 04.08.2010 11:45

Я бы рекомендовал управлять через шаблон медиатор http://en.wikipedia.org/wiki/Mediator_pattern Ну т.е. загруженная флэшка имплементит интерфейс какой надо, через методы которого рулить. Или она имплементит интерфейс, в котором один метод "отдать обьект, который имплементит интерфейс, какой надо", чтоб не было относящегося к взаимодействию кода в документ классе.
Насчёт "Ошибка в том, что если тестить флеш с локально, то будет эта ошибка, а когда запуская с сервера, то все нормально, нет нарушения среды." http://help.adobe.com/en_US/ActionSc...0204-7e3f.html

Diestro 04.08.2010 11:59

Это все из-за того что переменная
Код:

Animation
начинается с большой буквы.

Tr1te 04.08.2010 19:06

-De-, спасибо с SecurityDomain разобрался.

А вот с управлением анимации не очень. Пишу так:
Главный класс:
Код AS3:

                public function Main():void {
                        var _uLoader:uLoader=new uLoader();
                        addChild(_uLoader);
                        addEventListener("Loading complete",LoadingCcomplete);
                        _uLoader.Load(0,1);
 
                        function LoadingCcomplete(e:Event):void {
                                removeEventListener("Loading complete",LoadingCcomplete);
                                var Anim:MovieClip=new MovieClip();
                                Anim=_uLoader.date;
                                addChild(Anim);
                                Anim.stop();
                        }
              }

И класс в которым загружаю:
Код AS3:

 
                public var date;
                                public function Load(uL_Server:int,uL_ID:int) {
                        var URL_Path:String="TestAnim.swf";
                        var uL_Loader:Loader=new Loader();
 
                        uL_Loader.contentLoaderInfo.addEventListener(Event.COMPLETE,uL_Loader_Complete);
                        uL_Loader.load(new URLRequest(URL_Path));
 
                        function uL_Loader_Complete(e:Event):void {
                                uL_Loader.contentLoaderInfo.removeEventListener(Event.COMPLETE,uL_Loader_Complete);
                                date=uL_Loader.content;
                                parent.dispatchEvent(new Event("Loading complete"));
                        }
 
                }

Все предельно просто. По идеи должно работать. Но не работает. Думаю что проблема в том, как я создаю этот SWF с видео, может тут что-то не правильно:

Открываю флеш, добавляю видео, создаю новый символ, кидаю в него видео. Потом правой кнопкой на символ, и нажимаю "Export SWF". Сохраняю на диск SWF.

Когда я открываю этот SWF, у меня все видео зациклено и проигрывается.

Добавлено через 1 час 19 минут





==================================================================================================
О God, все оказалось проще, надо нормально создавать SWF. Просто создать новый fla, вставить видео и публиковать в swf.

Но тогда зачем кнопка "Export SWF"...


Часовой пояс GMT +4, время: 08:50.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.