Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 30.10.2007, 16:35
iSextuS вне форума Посмотреть профиль Отправить личное сообщение для iSextuS Найти все сообщения от iSextuS
  № 1  
Ответить с цитированием
iSextuS

Регистрация: Oct 2007
Сообщений: 6
Question Как создать объект на основе XML-описания его свойств?

Доброго времени суток, уважаемые Знатоки.

Работаю сейчас над флеш версией портфолио а-ля "ЕЖгун". Хочу использовать тот же приём для отображения превьюшек для своих работ. Если вкратце - у меня на сервере лежит папка /portfolio/ с дочерними папками-категориями (Banners, Websites) в каждой из которых размещаются папки-проекты (dir01, dir02 .. dirXX) с описанием проекта, скрином и превьюшкой. внутри папки /portfolio/ сидит мой пхп-скрипт, который выполняет обход вложеных папок и файлов и на их основе формирует XML-описание древа каталогов.

В книге Д.Гурского по AS2.0 в главе посвященной XML была заметка, что для объекта во флеш как на примере ниже можно сгенерировать следующее XML-описание.

пример:



А как можно выполнить обратное действие? то есть на основе XML-описания воссоздать объект в AS2.0?



PS: По задумке, воссоздав объект и перебирая все его свойства циклами, я бы мог по маске передавать пути для загрузки описаний и превьюшек в мой ролик.
например:
"www.mysite.url/ + portfolio/ + banners/ + dir01/ + prev.jpg" // адрес превьюшки для первой работы из папки-категори Banners

- - - дополнительно - - -

моё дерево папок:


Cгенерированое скриптом XML-описание этого дерева:
Код HTML:
<?xml version="1.0" encoding="utf-8"?>
<portfolio>
	<category name="Banners">
	<dir01>
		<file>full.gif</file>
		<file>info.txt</file>
		<file>prev.gif</file>
	</dir01>
	<dir02>
		<file>full.gif</file>
		<file>info.txt</file>
		<file>prev.gif</file>
	</dir02>
	<dir03>
		<file>full.gif</file>
		<file>info.txt</file>
		<file>prev.gif</file>
	</dir03>
	</category>
	<category name="Websites">
	<dir01>
		<file>full.gif</file>
		<file>info.txt</file>
		<file>prev.gif</file>
	</dir01>
	<dir02>
		<file>full.gif</file>
		<file>info.txt</file>
		<file>prev.gif</file>
	</dir02>
	<dir03>
		<file>full.gif</file>
		<file>info.txt</file>
		<file>prev.gif</file>
	</dir03>
	</category>
</portfolio>
PHP-скрипт выполняющий обход:
PHP код:
<?php

ob_start
();

echo 
'<?xml version="1.0" encoding="utf-8"?>';
echo 
"\n";

function 
getFile($dir){
    
$file opendir($dir);
    while(
$dir readdir($file)){
        if(
$dir != "." && $dir != ".."){
            echo 
"\t\t<file>".$dir."</file>\n";
        }
    }
}

function 
getDir($dir){
    
$category opendir($dir);
    while(
$sub_dir readdir($category)){
        if(
$sub_dir != "." && $sub_dir != ".."){
            echo 
"\t<".$sub_dir.">\n";
            
getFile($dir.$sub_dir);
            echo 
"\t</".$sub_dir.">\n";
        }
    }
}

$portfolio opendir("portfolio/");
echo 
"<portfolio>\n";
while(
$dir readdir($portfolio)){
    if(!
is_file($dir) && $dir != "." && $dir != ".."){
            echo 
"\t";
            echo 
'<category name="'.$dir.'">';
            echo 
"\n";
            
getDir("portfolio/".$dir."/");
             echo 
"\t</category>\n";
    }
}
echo 
"</portfolio>";

$str ob_get_contents();
$fh fopen("tree.xml""w"); //необходимо только для отладки работы скрипта;
fputs($fh$str);
fclose($fh);

ob_flush();

?>
мир вашему дому)

Создать новую тему   Часовой пояс GMT +4, время: 19:00.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 19:00.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.