PDA

Просмотр полной версии : Flash & {MDM} Zinc, не катит запуск...


_bioscorpio_
13.06.2007, 21:41
Сталкнулся с такой проблемой, ни как не могу открыть приложение. В чем дело так и не могу понять. XML грузиться в Zinc, а вот запускать внешнии файлы не хочет...

<?xml version="1.0" encoding="utf-8"?>
<strings>
<list label="Выберите тематику">
</list>
<list label="Общая психология">
<item label="Название документа_1_1" url="Общая психология\\1 (1).doc"/>
</list>
...
...
...
<list label="Диагностика">
<item label="Название документа_7_1" url="Диагностика\\1 (7).doc"/>
</list>
</strings>

вот код запуска того перечня что идет в XML

var listListener = {};
listListener.change = function(event) {
mdm.System.exec(mdm.Application.path+event.target.selectedItem.data.attributes['url']);
};
items_lst.addEventListener('change', listListener);
list_cmb.addEventListener('change', comboboxListener);
listXML.load(mdm.Application.path+"db file.xml");
И чет он ни в какую не хочет запускать мне *.doc, *.exe, *.mp3...

Может вы подскажете новечку чего и как? А то я уже голову ломаю 3-й день с этим, ни как не могу догнать в чем дело...

alexcon314
13.06.2007, 23:19
Как у тебя xml привязывается к компоненту List? Ты ведь его используешь? Тут дело не в цинке, а в том что у тебя неверно происходит обращение к элементам списка. (Как все-таки он у тбя заполняется?)
должно быть примерно так (на коленке собрал пример):
<?xml version="1.0" encoding="utf-8"?>
<strings>
<item label="Название документа_1_1" url="Общая психология\1 (1).doc"/>
</strings>

var listXML:XML = new XML();
listXML.load(mdm.Application.path+"db file.xml");
listXML.ignoreWhite = true;
listXML.onLoad = function(s:Boolean) {
fillList();
};
function fillList() {
// здесь надо заполнять items_lst, собственно, итемами.
items_lst.addItem({label:listXML.firstChild.firstChild.attributes.label, url:listXML.firstChild.firstChild.attributes.url});
}
var listListener:Object = new Object();
listListener.change = function(eventObject:Object) {
// а здесь обращаемся к свойству url выделенного в items_lst итема
mdm.System.exec(mdm.Application.path+eventObject.target.selectedItem.url);
};
items_lst.addEventListener('change', listListener);

попробуй.. все работает
P.S.использование пробелов и русских букв в путях и названиях файлов не есть хорошая практика, хотя к этому примеру это не относится

_bioscorpio_
14.06.2007, 15:46
Вот полный мой код в Flash

var listXML = new XML();
listXML.ignoreWhite = true;
listXML.load(mdm.Application.path+"db file.xml");
listXML.onLoad = function(success) {
if (!this.loaded || this.status) {
Alert.buttonHeight = 25;
Alert.buttonWidth = 55;
Alert.okLabel = "ВЫХОД";
var Click = function (evt_obj:Object) {
if (evt_obj.detail == Alert.OK) {
fscommand("quit", "");
mdm.Application.exit();
}
};
Alert.show("Утерян или не найден файл: db file.xml", "Ошибка!", Alert.OK, null, Click);
return;
}
list_cmb._visible = true;
items_lst._visible = true;
var nodes = this.firstChild.childNodes;
var nodesLength = nodes.length;
for (var i = 0; i<nodesLength; i++) {
var node = nodes[i];
list_cmb.addItem(node.attributes['label'], node.childNodes);
}
};
var comboboxListener = {};
comboboxListener.change = function(event) {
var nodes = event.target.selectedItem.data;
var nodesLength = nodes.length;
this.items_lst.removeAll();
for (var i = 0; i<nodesLength; i++) {
var node = nodes[i];
this.items_lst.addItem(node.attributes['label'], node);
}
};
comboboxListener.items_lst = items_lst;
var listListener = {};
listListener.change = function(event) {
mdm.System.exec(mdm.Application.path+event.target.selectedItem.data.attributes['url']);
};
items_lst.addEventListener('change', listListener);
list_cmb.addEventListener('change', comboboxListener);

полный код XML

<?xml version="1.0" encoding="utf-8"?>
<strings>
<list label="Выберите интересующую вас тему">
</list>
<list label="Общая психология">
<item label="Название документа_1_1" url="Общая психология\1 (1).doc"/>
</list>
<list label="Возрастная психология">
<item label="Название документа_2_1" url="Возрастная психология\1 (2).doc"/>
</list>
<list label="Консультирование">
<item label="Название документа_3_1" url="Консультирование\1 (3).doc"/>
</list>
<list label="Социальная психология">
<item label="Название документа_4_1" url="Социальная психология\1 (4).doc"/>
</list>
<list label="Психология семьи">
<item label="Название документа_5_1" url="Психология семьи\1 (5).doc"/>
</list>
<list label="Психокоррекция">
<item label="Название документа_6_1" url="Психокоррекция\1 (6).doc"/>
</list>
<list label="Диагностика">
<item label="Название документа_7_1" url="Диагностика\1 (7).doc"/>
</list>
</strings>

Как сказал alexcon314 у меня возможно не соответствие путей в коде реальным путям к файлам на диске, но! я посмотрел что и как, и мне кажется что все у меня верно. Вот древо как у меня все находится в папке

Общая психология\1 (1).doc
Возрастная психология\1 (2).doc
Консультирование\1 (3).doc
Социальная психология\1 (4).doc
Психология семьи\1 (5).doc
Психокоррекция\1 (6).doc
Диагностика\1 (7).doc
db file.xml
Run.exe

Почему из всего у меня грузится только Консультирование\1 (3).doc ? :( :confused:

_bioscorpio_
14.06.2007, 17:20
Вопрос закрыт, я был невнимателен 0=)