![]() |
|
||||||||||
|
|||||
|
[+4 06.08.07]
Регистрация: Aug 2002
Сообщений: 44
|
Что-то в поиске темы не совсем подходят...
Я хочу загрузить XML-файл. На основании данных из этого файла будут загружаться различные клипы и выполняться различный код. Но только на основании этого XML. Получается что нет способа сделать это так, т.к. во флэш многопоточность? |
|
|||||
|
[+4 06.08.07]
Регистрация: Aug 2002
Сообщений: 44
|
Ну получается, что всё надо вставлять в
my_xml.onLoad = function(ok) {........................}, а это как-то неправильно... это не тру! ![]() |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Это тру, ещё как. Ибо флеш асинхронен.
И чем мешает подобная организация? |
|
|||||
|
[+4 06.08.07]
Регистрация: Aug 2002
Сообщений: 44
|
А если сделать второй кадр, на который переходить после загрузки XML, и там уже выполнять остальные действия, т.е. сделать из первого кадра загрузчик.
|
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Что мешает все делать в одном кадре, вызывания после onLoad нужную функцию?
|
|
|||||
|
[+4 06.08.07]
Регистрация: Aug 2002
Сообщений: 44
|
Функций достаточно много и если всё засуну в скобки onLoad, а потом придётся подгрузить ещё пару клипов, то читабельность будет плохая.
И уменьшается потенциальная расшираемость кода.... вернее его будет сложнее редактировать, т.к. весь код будет поделён на 4-6 больших кусков блоками onLoad. Если различные части кода размещать на разных кадрах, то это можно сравнить со скриптами в разных файлах.... |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
По-моему это уже проблема организации.
|
|
|||||
|
[+1.3 31.07.07]
Регистрация: Jul 2007
Сообщений: 64
|
var arrClasses:Array = [{className:CONST_BULET_CLIP, classTarget:CBuletClip},
{className:CONST_GUN_CLIP, classTarget:CGunClip}];
var xmlData = new XML();
xmlData._parent = this;
xmlData.onLoad = processLoadData;
xml.data.load("./src/data.xml");
function processLoadData(success:Boolean)
{
if(success) this._parent.parseData();
}
function parseData()
{
var dataContent:Array = xmlData.childNodes;
for(var i=0;i<dataContent.length;i++)
{
var objectName:String = dataContent[i].attributes.name;
initObjectByName(objectName, dataContent[i]);
}
}
function initObjectByName(strName:String, dataContent:XMLNode)
{
var parentClass:Object = getBehaviorByName(strName);
new parentClass(dataContent);
}
function getBehaviorByName(strName:String):Object
{
for(var i=0;i<arrClasses.length;i++)
{
if(arrClasses[i].className == strName) return arrClasses[i].classTarget;
}
}
Последний раз редактировалось KPOT; 31.07.2007 в 19:22. |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
KPOT, отредактируйте свой пост и оформите код тегами [code][/code].
|
![]() |
![]() |
Часовой пояс GMT +4, время: 16:06. |
|
|
« Предыдущая тема | Следующая тема » |
|
|