Как получить URL, на который встроен Flash-фильм? - PullRequest
2 голосов
/ 13 января 2010

сегодня я пытаюсь получить URL, на котором сидит мой Flash-фильм.

Я нашел аналогичный вопрос здесь , на который был дан ответ с ссылкой на метод LoaderInfo , но я не уверен, что использую правильно, как textField в моем тестовом фильме здесь: http://leongaban.com/stackoverflow/getUrl/ не отображает URL

Обновлено! РАБОЧИЙ КОД

Все, что мне было нужно, это: stage.loaderInfo.url:)

package {

import flash.display.Stage;
import flash.display.DisplayObject;
import flash.display.Sprite;
import flash.display.Loader;
import flash.display.LoaderInfo;
import flash.events.Event;
import flash.text.TextField;
import flash.text.TextFieldAutoSize;
import FontsTest;

public class LoaderInfoExample extends Sprite 
{
    private var myTextField :TextField = new TextField();
    private var urlIs:String = "";

    public function LoaderInfoExample() {

        urlIs = stage.loaderInfo.url;
        trace(stage.loaderInfo.url);
        addEventListener(Event.ADDED_TO_STAGE, initHandler);
    }

    private function initHandler(event:Event):void {

        myTextField.defaultTextFormat = FontsTest.Arial14Bold;
        myTextField.border = true;
        myTextField.antiAliasType = flash.text.AntiAliasType.ADVANCED;
        myTextField.selectable = true;
        myTextField.mouseEnabled = true;
        myTextField.autoSize = TextFieldAutoSize.LEFT;
        myTextField.text = "Url is = "+urlIs;

        addChild(myTextField);
    }
}
}

http://leongaban.com/stackoverflow/getUrl/

Ответы [ 3 ]

7 голосов
/ 13 января 2010

Если я правильно понимаю, вы делаете это немного неправильно. Вам не нужно создавать новый загрузчик - .swf содержит ссылку на свой собственный объект loaderInfo на сцене.

Так что, если вы хотите отследить текущее местоположение вашего .swf файла, сделайте что-то вроде этого:

trace(stage.loaderInfo.url);

Это помогает?

0 голосов
/ 13 января 2010

Вам нужно сделать onAddedToStage вместо Event.INIT

public function LoaderInfoExample() {
    addEventListener(Event.ADDED_TO_STAGE, initHandler);
}

и затем используйте root.loaderInfo

0 голосов
/ 13 января 2010

Если вам нужен ваш собственный URL, класс DisplayObject имеет свойство loaderInfo, которое вы можете использовать. Попробуйте это:

myLoader = this.root.loaderInfo;
urlIs = myLoader.loaderURL;

Я относительно уверен, что создаваемый вами объект загрузчика не будет иметь loaderURL (или что-либо еще), пока вы не скажете ему загрузить запрос.

...