flash as3 и внешний текстовый конфигурационный файл - PullRequest
0 голосов
/ 22 марта 2012

Моя цель состояла в том, чтобы настроить внешний текстовый файл для клиента. Я не хотел проходить через сумасшедшую вещь XML, я просто хотел, чтобы это было легко изменить. Я начал с urlLoader и смог динамически сгенерировать объект без проблем. Это функция, которая анализирует и устанавливает свойства объекта.

function onLoaded(e:Event):void//initializes the config
{
var myString = String(e.target.data);
//trace(e.target.data);
//trace(myString);
var propsArray:Array = myString.split("\n"); 


for (var i = 0; i < propsArray.length; i++){
    var thisLine:Array = propsArray[i].split("=");
    var thisPropName:String = thisLine[0];
        thisPropName = thisPropName.replace(rex,'');
    var thisPropValue:String = thisLine[1];
    thisPropValue = thisPropValue.replace(rex,'');
trace("thePropName is: " + thisPropName);
    trace("thePropValue is: " + thisPropValue);
config[thisPropName] = thisPropValue;
}

}

Текстовый файл будет выглядеть примерно так:

gateway = "http://thePathto/theFile.php
тост = сукин сын
таймер = 5000
xSpeed ​​= 5,0

Таким образом, я мог бы просто добавить немного кода as3, ввести то, что я хотел настроить, и все, что мне нужно было сделать, это набрать config.timer и

var myTimer:Timer = new Timer(Number(config.timer));


Я думаю, что проблема заключается в порядке загрузки и объеме. Config.timer еще не создан, поэтому таймер не может получить доступ к значению config.timer.

Ответы [ 2 ]

1 голос
/ 22 марта 2012

Я бы посмотрел на использование XML в будущих проектах такого рода, однако, чтобы ответить на ваш вопрос:

Я думаю, что проблема в порядке загрузки и объеме. config.timer еще не создан, поэтому таймер не может получить доступ к значению config.timer.

Правильно, вам нужно инициализировать Timer в методе onLoaded(), поскольку данные будут получены асинхронно и недоступны до тех пор, пока это не произойдет.

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

хорошо, не так давно я создал менеджер загрузок, который использует именно эту концепцию.Ссылка ниже приведет вас прямо на сайт, где вы можете скачать полный SWF, включая мои исходные файлы.также этот веб-сайт является хорошим местом для ресурсов

http://ffiles.com/flash/web_applications_and_data/dynamic_download_manager_3529.html

Ниже мой загрузчик:

addEventListener(Event.ENTER_FRAME, update);
var myLoader:URLLoader = new URLLoader();
myLoader.dataFormat = URLLoaderDataFormat.VARIABLES;
myLoader.load(new URLRequest("settings.txt"));
myLoader.addEventListener(Event.COMPLETE, onDataLoad);

function onDataLoad(evt:Event)
{

box1.text = evt.target.data.Id_1;
box2.text = evt.target.data.Id_2;
box3.text = evt.target.data.Id_3;
box4.text = evt.target.data.Id_4;
box5.text = evt.target.data.Id_5;
}

Добавьте несколько динамических текстовых полей для stage и nameих "box1, box2 и т. д ..." Теперь создайте свой текстовый файл:

Id_1=this is what ever you want
&Id_2=this is what ever you want
&Id_3=this is what ever you want
&Id_4=this is what ever you want
&Id_5=this is what ever you want

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

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