iSextuS
30.10.2007, 16:35
Доброго времени суток, уважаемые Знатоки.
Работаю сейчас над флеш версией портфолио а-ля "ЕЖгун (http://zhgun.ru/pics/posters/)". Хочу использовать тот же приём для отображения превьюшек для своих работ. Если вкратце - у меня на сервере лежит папка /portfolio/ с дочерними папками-категориями (Banners, Websites) в каждой из которых размещаются папки-проекты (dir01, dir02 .. dirXX) с описанием проекта, скрином и превьюшкой. внутри папки /portfolio/ сидит мой пхп-скрипт, который выполняет обход вложеных папок и файлов и на их основе формирует XML-описание древа каталогов.
В книге Д.Гурского по AS2.0 в главе посвященной XML была заметка, что для объекта во флеш как на примере ниже можно сгенерировать следующее XML-описание.
пример:
http://sextus.org/wp-content/uploads/2007/sxs2numberone/sheme-gif2.gif
А как можно выполнить обратное действие? то есть на основе XML-описания воссоздать объект в AS2.0?:umnik2:
PS: По задумке, воссоздав объект и перебирая все его свойства циклами, я бы мог по маске передавать пути для загрузки описаний и превьюшек в мой ролик.
например:
"www.mysite.url/ + portfolio/ + banners/ + dir01/ + prev.jpg" // адрес превьюшки для первой работы из папки-категори Banners
- - - дополнительно - - -
моё дерево папок:
http://sextus.org/wp-content/uploads/2007/sxs2numberone/derevo.gif
Cгенерированое скриптом XML-описание этого дерева:
<?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
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();
?>
мир вашему дому)
Работаю сейчас над флеш версией портфолио а-ля "ЕЖгун (http://zhgun.ru/pics/posters/)". Хочу использовать тот же приём для отображения превьюшек для своих работ. Если вкратце - у меня на сервере лежит папка /portfolio/ с дочерними папками-категориями (Banners, Websites) в каждой из которых размещаются папки-проекты (dir01, dir02 .. dirXX) с описанием проекта, скрином и превьюшкой. внутри папки /portfolio/ сидит мой пхп-скрипт, который выполняет обход вложеных папок и файлов и на их основе формирует XML-описание древа каталогов.
В книге Д.Гурского по AS2.0 в главе посвященной XML была заметка, что для объекта во флеш как на примере ниже можно сгенерировать следующее XML-описание.
пример:
http://sextus.org/wp-content/uploads/2007/sxs2numberone/sheme-gif2.gif
А как можно выполнить обратное действие? то есть на основе XML-описания воссоздать объект в AS2.0?:umnik2:
PS: По задумке, воссоздав объект и перебирая все его свойства циклами, я бы мог по маске передавать пути для загрузки описаний и превьюшек в мой ролик.
например:
"www.mysite.url/ + portfolio/ + banners/ + dir01/ + prev.jpg" // адрес превьюшки для первой работы из папки-категори Banners
- - - дополнительно - - -
моё дерево папок:
http://sextus.org/wp-content/uploads/2007/sxs2numberone/derevo.gif
Cгенерированое скриптом XML-описание этого дерева:
<?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
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();
?>
мир вашему дому)