AS3 Загрузка внешнего SWF из AN SWF с внешней загрузкой - Доступ к детям? - PullRequest
1 голос
/ 13 марта 2012

EDIT

ОБНОВЛЕНИЕ 12 МАРТА 2012 ГОДА: это делается с помощью AIR FOR ANDROID, использующей CS5.5. Мне нужен доступ к переменным в только что загруженных SWF файлах, которые размещены на веб-сервере, и мне нужно, чтобы приложение на моем телефоне имело к ним доступ. Я начинаю, это невозможно.

----------------------------------------------- -------------------------------

Моя основная сцена swf загружает еще одну:

SWF 1

var TheContent:Loader = new Loader();
    TheContent.load(new URLRequest("http://MyWebsite.com/swf2.swf"));

/// В этом SWF 1 выше Я ДОЛЖЕН ЗНАТЬ, КАКОЙ КОД может видеть, загружен ли другой контент, и контролировать его при загрузке. Но это сложно, потому что Я загружаю внешний контент с загруженного извне swf.

Вот код в SWF 2

var TheMenu:Loader = new Loader();
TheMenu.load(new URLRequest("http://MyWebsite.com/MenuBar.png")); // you were missing a "

В первом SWF 1 Я хочу знать, загрузился ли MenuBar.png и как им управлять. Так, например, в SWF 1 я мог бы поместить код, подобный этому ...

    if(TheContent.MenuBar) /// IS LOADED? THEN...
    {
        MenuBar.alpha = .3;
        MenuBar.x = 33;
        etc...
    }

Ответы [ 2 ]

0 голосов
/ 13 марта 2012

Во-первых, кажется, что вся ваша структура, вероятно, не лучший подход. Из моего понимания ваш вопрос:

(Основной фильм) загружает дополнительный (Фильм), затем (ВТОРОЙ) Фильм загружает свой дополнительный (фильм);

затем вы хотите, чтобы первый фильм управлял вторым фильмом при условии, что третий фильм% 100 и готов к действию

Это будет цель от загруженного SWF до основного SWF

      MovieClip(parent.parent).ParentFunction();    // or the 3rd movie would be 
      MovieClip(parent.parent.parent).ParentFunction();

Я сделал вам файл на моем сервере http://www.gamezslave.net/SampleAS3/

Просто откройте основной файл movie.swf, и вы увидите, что он загружает два других фильма друг в друга, как вам нужно, затем он воспроизводит анимацию в первом фильме, чтобы сообщить вам, что 3-й фильм закончил загрузку. Дайте мне знать, как вы идете, пожалуйста, так как я потратил 15 минут, чтобы собрать это для вас.

в zip-архиве (содержит все исходные файлы 3x "SWF" и 3x "html pages");

спасибо BJM Сидней

0 голосов
/ 13 марта 2012

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

Следующий код для SWF 2:

import flash.display.Loader;
import flash.events.ProgressEvent;
import flash.net.URLRequest;

public class YourClassName
{
    /**This will get a progress number of your file**/
    public var fileProgress:Number = 0;
    /**This will get the file size**/
    public var fileTotalBytes:Number = 0;

    public function YourClassName()
    {           
        var TheMenu:Loader = new Loader();
        TheMenu.addEventListener(ProgressEvent.PROGRESS, onProgressHandler, false, 0, true);
        TheMenu.load(new URLRequest("http://MyWebsite.com/MenuBar.png"));

    }

    protected function onProgressHandler(event:ProgressEvent):void{
        fileProgress = event.bytesLoaded;
        fileTotalBytes = event.bytesTotal;
    }
}`

Следующий код для SWF 1:

public function printStatus():void{

        //Returs file`s progress
        trace("Progresss: "+swf1.fileProgress);

        //Return file`s size
        trace("File size: "+swf1.fileTotalBytes);
    }

Надеюсь, это поможет вам!

...