Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   как загрузить локальный .swf файл из другого локального .sfw файла? (http://www.flasher.ru/forum/showthread.php?t=195754)

Миминов Руслан 12.03.2013 20:08

как загрузить локальный .swf файл из другого локального .sfw файла?
 
Добрый вечер! подскажите, возможно ли загрузить локальный, уже созданный *.swf файл из другого создаваемого .swf файла (тоже находится на локальном компьютере)... какой код писать в AS3? :\ грубо говоря, надо чтобы один .swf файл передал команду грузиться другому .swf файлу и сам по-возможности закрылся (желательно без закрытия flash playera) возможно ли такое? :\\ просто нужно соединить кучу .swf файлов в один, но судя по всему это очень сложно и надо будет заново всё отрисовывать в одном файле, как вариант подумал может их можно просто соединить друг с другом? :\\\ т.е. создать один swf с кнопками, при нажатии на которые будут грузиться по-очереди остальные... :\ помогите, пожалуйста!!! :(

caseyryan 12.03.2013 20:16

Ничего сложного в этом нет.
Грузим обычным Loader'ом, по событию complete присваиваем event.target.content к переменной с типом MovieClip (раз уж там анимация). После этого используем как обычные мувиклипы.

Миминов Руслан 12.03.2013 21:30

это для Вас ничего сложного... :) а для меня - непонятно вообще... я только начинаю тут разбираться... :\ помогите, пожалуйста!!! :\\\
вот у меня есть файл C:\two.swf, и есть открытый в Flash файл С:\one.swf с кнопкой btn_1 на сцене, как сделать, чтобы при нажатии на CTRL + ENTER у меня открывался файл с кнопкой при нажатии на которую уже открывался файл two.swf ?? так кто-нибудь делает структуру приложения? или всё обязательно загоняют в один swf? :)

MikroAcse 12.03.2013 21:35

Код AS3:

var loader:Loader = new Loader();
loader.load(new URLRequest("adress/file.swf"));
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoaded);
 
function onLoaded(e:Event):void {
    var content:MovieClip = loader.content as MovieClip;
    addChild(content);
}

Учите флеш по урокам и постепенно, а не все и сразу.

Миминов Руслан 12.03.2013 21:41

Код:

Error #2044: Необработанный IOErrorEvent:. text=Error #2035: URL-адрес не обнаружен
Добавлено через 35 секунд
Код AS3:

var loader:Loader = new Loader();
loader.load(new URLRequest("C:\1.swf"));
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoaded);
 
function onLoaded(e:Event):void {
    var content:MovieClip = loader.content as MovieClip;
    addChild(content);
}

Добавлено через 2 минуты
видимо из-за локального имени файла :\\ что делать? почему не грузит? может URLRequest не подходит такое? :\

MikroAcse 12.03.2013 21:44

Миминов Руслан, оформляйте код в теги.
Вот ответ:
Код AS3:

loader.load(new URLRequest("C:\\1.swf"));

Обратный слэш пишется дважды, потому что он используется для \n, \r, \t...

Миминов Руслан 12.03.2013 21:56

спасибо за помощь! *.swf подгрузился, но без кода, только фон... и пишет

TypeError: Error #1009: Не удается вызвать свойство или метод со ссылкой на объект "null".
at main_fla::MainTimeline/frame1()

Добавлено через 5 минут
может Вы сможете мне давать уроки по AS3 как-нибудь по teamveiwer или хотя бы помогать найти ответы как реализовать ту или иную задачу? я Вам буду платить! (100$ \ 2 часа) :) или могу за каждый ответ, как этот вот... :) блин, мне надо выучить этот AS3! помогите! :\\\

MikroAcse 12.03.2013 22:12

В твоей флешке есть обращение к stage.
Просто сделай в подгружаемой флешке все так:
Код AS3:

addEventListener(Event.ADDED_TO_STAGE, onInit);
 
function onInit(e:Event):void {
    // ... тут ВЕСЬ код твоей флешки (ну, кроме переменных и функций)
    // ... это событие, когда флешку/объект добавляют на сцену и ей доступен stage.
}

Цитата:

может Вы сможете мне давать уроки по AS3 как-нибудь
demiart.ru
google.ru
youtube.com
etc

Цитата:

ответ, как этот вот... блин, мне надо выучить этот AS3! помогите! :\\\
Спрашивай тут, на форуме. Я и другие программисты чем смогут - помогут :)

Миминов Руслан 12.03.2013 22:45

в моей флешке только часы и одно текстовое поле

Код AS3:

 
// часы со слушателем ENTER_FRAME
stage.addEventListener(Event.ENTER_FRAME, enterFrame);
 
function enterFrame(e:Event):void
{
        var currentDate:Date = new Date();
        var secondsWithOut0 = currentDate.getSeconds();
        var minutes = currentDate.getMinutes();
        var hours = currentDate.getHours();
 
        var seconds = 0;
 
        if (secondsWithOut0 < 10){
                seconds = "0" + secondsWithOut0;
        }
        else {
                seconds = secondsWithOut0;
                }
        trace (secondsWithOut0);
        trace (seconds);
 
        if (minutes<10){
                time.text = hours + ":"+"0"+ minutes + ":" + seconds;
        }
 
        else{
                time.text = hours + ":" + minutes + ":" + seconds;
        }
 
}
 
// часы закончились
 
 
 
txt_russian.text = "russian";



куда и как добавить Ваш код, вместо чего ? :\\\ я не понимаю

Код AS3:

addEventListener(Event.ADDED_TO_STAGE, onInit);
 
function onInit(e:Event):void {
    // ... тут ВЕСЬ код твоей флешки (ну, кроме переменных и функций)
    // ... это событие, когда флешку/объект добавляют на сцену и ей доступен stage.
}


MikroAcse 12.03.2013 22:52

Аа, здесь можно просто заменить строчку:
Код AS3:

stage.addEventListener(Event.ENTER_FRAME, enterFrame);

На:
Код AS3:

addEventListener(Event.ENTER_FRAME, enterFrame);

А вообще, в след. раз:
Код AS3:

addEventListener(Event.ADDED_TO_STAGE, onInit);
 
function onInit(e:Event):void {
    stage.addEventListener(Event.ENTER_FRAME, enterFrame);
}
 
function enterFrame(e:Event):void
{
        var currentDate:Date = new Date();
        var secondsWithOut0 = currentDate.getSeconds();
        var minutes = currentDate.getMinutes();
        var hours = currentDate.getHours();
 
        var seconds = 0;
 
        if (secondsWithOut0 < 10){
                seconds = "0" + secondsWithOut0;
        }
        else {
                seconds = secondsWithOut0;
                }
        trace (secondsWithOut0);
        trace (seconds);
 
        if (minutes<10){
                time.text = hours + ":"+"0"+ minutes + ":" + seconds;
        }
 
        else{
                time.text = hours + ":" + minutes + ":" + seconds;
        }
 
}



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

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