Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   БД->Flash (http://www.flasher.ru/forum/showthread.php?t=139690)

greshnig 08.05.2010 15:37

БД->Flash
 
Доброе время суток!
Все вроде не очень сложно, но почему то не работает :(
Нужно сделать чтобы выводились картинки во флеш из Базы данных.Что сделал:
-создал бд->таблицу->колонку с 3мя параметрами, id, name, link(соответственно в ней и хранится ссылка на картинку типа D:\Image\1.jpg) ссылка пока жесткая, сразу на картинку

-Есть пхп скрипт следующего содержания


PHP код:

<?php
   $link 
mysql_connect('localhost','admin','');
   
mysql_select_db('test');

   
// загрузить все ссылки из таблицы
   
$result mysql_query('SELECT link FROM Image ORDER BY Name');
   for (
$i0$i mysql_num_rows($result); $i++)
   {
       
$newUrl mysql_fetch_array($resultMYSQL_NUM);
       echo 
"img$i=".$newUrl[0];
   }
   
mysql_close($link);
?>

Он возвращает img0=D:\image\1.jpg

-Затем во флеш чтобы загрузить картинку использую


Код:

function loadImg():Void
{
    var loadObj:LoadVars = new LoadVars();  // Создаем объект для загрузки данных
    loadObj.load('index.php');    // Загружаем данные
    //trace ('loadObj[' + url + '] = ' + loadObj[url]);
    loadObj.onLoad = function(success){
    for (var url:String in loadObj) //Обработка всех параметров в объекте loadObj
    {
        if (url !== 'load')    // Если параметр не load( функция загрузки данных )
        {
              this.createEmptyMovieClip (url, this.getNextHighestDepth());      // создаем в корне пустой клип
              mcl.loadClip(loadObj[newUrl], url);    //  Грузим в него картинку. 
            }
    }
}
};

Но увы и ах, переменные не беруться ни в какую, пробовал трассировать, но пишет что переменные undefined, возможно что функция выполнилась раньше чем ответ от пхп пришел.
Так же пробовал - {loadVariables("index.php", "_root", "POST");
Но тут тоже самое...
Может кто нибудь знает как надо правильно написать чтобы успевал ответ от пхп приходить, или еще как нибудь работал с БД , помогите очень нужно!

mooncar 08.05.2010 17:22

Сильно в ваш код не вникал, но где у вас обработчики событий, onData или onLoad?
Как у вас отслеживается момент загрузки данных?
Вообще, какая-то странная логика.
Посмотрите в хелпе примеры на sendAndLoad, например.

greshnig 08.05.2010 18:35

Цитата:

Сообщение от mooncar (Сообщение 906845)
Сильно в ваш код не вникал, но где у вас обработчики событий, onData или onLoad?
Как у вас отслеживается момент загрузки данных?
Вообще, какая-то странная логика.
Посмотрите в хелпе примеры на sendAndLoad, например.

whoops, сори я даж незаметил что она пропала, она была(loadObj.onLoad = function(success){}) , поправил код, есть идеи?

mooncar 08.05.2010 18:46

Все надо переделывать.
Навсидку:
1) Не пишите функции в функциях. Оставьте внутри основной функции только саму загрузку, а все обработчики, объявление самой LoadVars вытащите наружу.
2) this.createEmptyMovieClip у вас ссылается на loadObj, а не на "корень". То есть вы пытаетесь при такой записи создать пустой новый мувик внутри экземпляра LoadVars, а не на сцене.

greshnig 08.05.2010 23:33

Что то странное оказывается происходит с передачей во флеш, то ли флеш не может загрузить .php файл, то ли переменные как то не так передает. На данный момент сделал :
PHP код:

<?php
    $link 
mysql_connect('localhost','admin','');
    
mysql_select_db('flash');
   
$query "SELECT user_name FROM tablica";
   
$result mysql_query($query) or die("Query failed : " mysql_error());
   
$qw mysql_fetch_assoc($result);
print_r ("test=".$qw[user_name].);
   
mysql_free_result($result);
   
mysql_close($link);
?>

Код AS1/AS2:

on(press){
  loadVariables("name.php", "", "POST");
  trace ($qw);
}

Все вроде упростил, но так же как писал пишет - undefined.
Просто для уточнения, пхп скрипт файл должен храниться в корне? + запущенный денвер для исполнения скрипта да?

mooncar 08.05.2010 23:35

loadVariables не используйте никогда, все же правильно начали делать - через LoadVars, иначе будет асинхронность - получение данных не сможете отследить.
Посмотрите хелп по этому классу, используйте sendAndLoad !


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

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