Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Подключение .Swf к .SWF (http://www.flasher.ru/forum/showthread.php?t=182638)

stronhold 30.07.2012 02:25

Подключение .Swf к .SWF
 
Я так понимаю, что надо делать через Embed, затем загрузить в byteArray, а loader, после loader.loadBytes(byteArray as ByteArray), добавить так: this.AddChild(loader).... Но у меня ничего не выходит
Код AS3:

import flash.events.*;
import flash.display.*;
import flash.utils.*;
[Embed(source = "data.swf",mimeType = "application/octet-stream")]
var cl:Class;
var byteLoader:ByteArray = new cl as ByteArray;
var loader:Loader = new Loader();
loader.loadBytes(byteLoader);
this.addChild(loader);

ошибок при компиляции не выдает, загружается в слое, data.swf не сжат и отдельно работает, никак не могу понять в чем дело...
Я просто хочу научиться делать вложение друг в друга SWF зашифрованных файлов ( что то типа защиты от быстрого вскрытия)... Ну вот и решил начать с не зашифрованного и не сжатогофайла... Еси можите, научите плиз как это делать правильно...

caseyryan 30.07.2012 07:22

Код AS3:

package  {
        import flash.display.DisplayObject;
        import flash.display.Loader;
        import flash.display.Sprite;
        import flash.utils.ByteArray;
        /**
        * ...
        * @author casey ryan
        */

        public class Main extends Sprite {
 
                [Embed(source="swf/TestSwf.swf", mimeType="application/octet-stream")]
                private var EmbededSWF:Class;
 
                public function Main() {
                        var ba:ByteArray = new EmbededSWF as ByteArray;
                        var loader:Loader = new Loader();
                        loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoadComplete);
                        loader.loadBytes(ba);
                }
 
                private function onLoadComplete(e:Event):void {
                        e.target.removeEventListener(Event.COMPLETE, onLoadComplete);
                        var loadedSwf:DisplayObject = e.target.content as DisplayObject;
                        addChild(loadedSwf);
                }
        }
}


stronhold 30.07.2012 14:47

Код AS3:

package  {
 
        import flash.display.*;
        import flash.utils.ByteArray;
        import flash.events.*;
        /**
        * ...
        * @author casey ryan
        */

        public class main extends Sprite {
 
                [Embed(source="data.swf", mimeType="application/octet-stream")]
                private var EmbededSWF:Class;
                public function main() {
                        var ba:ByteArray = new EmbededSWF as ByteArray;
                        trace(ba.length+', '+ba[0]+' '+ba[1]+' '+ba[2]+' ');
                        var loader:Loader = new Loader();
                        loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoadComplete1);
                        loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, onProgressGo);
                        trace(ba.length);
                        trace(loader);
                        loader.loadBytes(ba as ByteArray);
                        trace('End Main');
                }
      private function onProgressGo(e:ProgressEvent):void{
                        trace('Loading....');
                }
                private function onLoadComplete1(e:Event):void {
                        trace('Complete!');
                        e.target.removeEventListener(Event.COMPLETE, onLoadComplete1);
                        var loadedSwf:DisplayObject = e.target.content as DisplayObject;
                        addChild(loadedSwf);
                        trace('ADD');
                }
        }
 
}

[/quote]
Вот немного модифицировал, поставил traces... Вот что выводит:

3808011, 70 87 83
3808011
[object Loader]
Loading....
Loading....
End Main


// 70d 87d 83d = 46h 57h 53h = F W S
Ну и нет в выводе Сomplete и ADD, поэтому я могу сказать точно что загрузка в loader не произошла...
Хелп снова, кто - что подскажет?
P.S.Adobe Flash Professional (c)

mooncar 30.07.2012 15:16

stronhold, не злоупотребляйте размером шрифта. Это только сбивает с толку. Достаточно выделения цветом, зрение у всех в порядке.

caseyryan 30.07.2012 15:41

Вложений: 1
Цитата:

Ну и нет в выводе Сomplete и ADD, поэтому я могу сказать точно что загрузка в loader не произошла...
Только что проверил. Все отлично работает. И Add и Complete! выводятся

Возможно проблема с файлом data.swf. Хотя не понимаю как в таком случае могут выводиться осальные трейсы.
Я тестировал на этом файле

stronhold 30.07.2012 16:03

Цитата:

Сообщение от caseyryan (Сообщение 1090253)
Только что проверил. Все отлично работает. И Add и Complete! выводятся

Возможно проблема с файлом data.swf. Хотя не понимаю как в таком случае могут выводиться осальные трейсы.
Я тестировал на этом файле

Да, спасибо, все работает... Вы оказались правы, файл повредился как-то O_o... Я его отдельно запустил - а он не работает... Вообщем моя халатность, пришлось собирать заново :)

Тему можно закрывать, Спасибо всем еще раз...


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

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