Вывод при компиляции

Обсуждение и помощь по вопросам взаимодействия с ВКонтакте API в Flash-приложениях (ActionScript)
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45

Re: Вывод при компиляции

Сообщение Александр »

dr1emaver
Надо вызывать следующую функцию только после завершения другой. И data будет содержать разные значения. Нельзя тупым копированием кода написать хорошее приложение.
dr1emaver
Сообщения: 78
Зарегистрирован: 16 июл 2011, 20:08

Re: Вывод при компиляции

Сообщение dr1emaver »

Спасибо! Тут небольшой вопросик появился...Предположим есть 2 кнопки. При нажатии первой вызывается функция отображения аватара, а при нажатии второй - текст. Но если нажать вначале первую, а потом вторую, то аватар никуда не денется,а останется на том же месте ( залезет на текст, вызываемый второй кнопкой.)Я так понял, что вызываемое событие само не закроется, поэтому его надо как то заканчивать. Подскажите пожалуйста на примере..Мне так легче будет разобраться.Очень сильно поможете.

Код: Выделить всё

private function profiles (e:Event) //вызывается по нажатию кнопки        {    // выводим аватарку пользователя    photoLoader.x=0;    photoLoader.y=175;     addChild(photoLoader);        }        
помогите пожалуйста на этом примере. Буду премного благодарен.
Аватара пользователя
bodnar
Модератор
Модератор
Сообщения: 1399
Зарегистрирован: 03 апр 2010, 06:41

Re: Вывод при компиляции

Сообщение bodnar »

dr1emaver писал(а):Я так понял, что вызываемое событие само не закроется, поэтому его надо как то заканчивать
ужс... что значит закроется событие? Событие произошло, слушатель выполнил предписанные действия и все. Если хочешь удалить аватар то

Код: Выделить всё

removeChild(photoLoader);photoLoader = null;
dr1emaver
Сообщения: 78
Зарегистрирован: 16 июл 2011, 20:08

Re: Вывод при компиляции

Сообщение dr1emaver »

bodnar писал(а):
dr1emaver писал(а):Я так понял, что вызываемое событие само не закроется, поэтому его надо как то заканчивать
ужс... что значит закроется событие? Событие произошло, слушатель выполнил предписанные действия и все. Если хочешь удалить аватар то

Код: Выделить всё

removeChild(photoLoader);photoLoader = null;
Получается, что этот код мне придется вызывать в каждой функции?
Аватара пользователя
bodnar
Модератор
Модератор
Сообщения: 1399
Зарегистрирован: 03 апр 2010, 06:41

Re: Вывод при компиляции

Сообщение bodnar »

зачем? случилось событие, выполнился какой то код, произошли изменения, в частности добавился аватар. Когда эти изменения больше не нужны (а это чаще всего бывает когда случается какое то другое событие) аватар можно удалить. Если событий после которых аватар не нужен несколько то да, во всех методах надо проверять есть ли аватар, и если есть то его удалять.
dr1emaver
Сообщения: 78
Зарегистрирован: 16 июл 2011, 20:08

Re: Вывод при компиляции

Сообщение dr1emaver »

Еще возник вопросик,из базы данных возвращается имя и булевое значение ( в котором 1 = true,0 =false) и все это возвращается одной строкой.

Код: Выделить всё

var b;         var h=e.target.data;         h=h.split("_");         for (var i = 0; i < (h.length-1); i++)                 {    b=h[i].split(":");    dp.addItem({Name:b[0], bool:b[1], ok: "Ок"});//Добавляет элемент в конец списка элементов.        }                   list.x=0;    list.y=215;    list.resizableColumns=false;    list.setSize(800,600);              list.columns=["Name","bool","ok"];    list.getColumnAt(2).width=7;    list.getColumnAt(1).width=21;    list.getColumnAt(0).width=17;    list.dataProvider=dp;    if (b[1] == 0) {    list.doubleClickEnabled=true;    list.addEventListener(ListEvent.ITEM_CLICK,news);    } else {    if (b[1] == 1) {    test2.x=300;    test2.y=600;    test2.width=700;    test2.height=100;    test2.text = Новость уже добавлена";    scene.addChild(test2);                }    }scene.addChild(list);                       
Так вот создается небольшая табличка (DataGrid ) в которой есть имя новости, буленовское значение (1 или 0).В зависимости от значения в строке bool происходит действие. Если он 0 то вызываем функцию двойным кликом, а если 1 то просто пишем "Новость добавлена ".Но проблема в том, что в базе довольно много записей, а таким условием можем проверить только 1 строку, но никак не остальные.Возможно ли как нибудь это обойти? Чтобы кликая на кнопку "ок" в строке, где буленовское значение равно 0 вызывалась функция, а где 1 там просто выводило сообщение. В php эти переменные выводятся так : $name.":".$bool."_";
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45

Re: Вывод при компиляции

Сообщение Александр »

dr1emaver
Используй автоформат кода в Adobe Flash!
dr1emaver писал(а):Но проблема в том, что в базе довольно много записей, а таким условием можем проверить только 1 строку, но никак не остальные.
Цикл в нужном месте поможет это реализовать.
dr1emaver писал(а):В php эти переменные выводятся так : $name.":".$bool."_";
Подумай, не будет ли лучше передавать данные в формате json или xml. http://flapps.ru/forum/topic3061.html
dr1emaver
Сообщения: 78
Зарегистрирован: 16 июл 2011, 20:08

Re: Вывод при компиляции

Сообщение dr1emaver »

Александр писал(а):dr1emaver
Используй автоформат кода в Adobe Flash!
dr1emaver писал(а):Но проблема в том, что в базе довольно много записей, а таким условием можем проверить только 1 строку, но никак не остальные.
Цикл в нужном месте поможет это реализовать.
dr1emaver писал(а):В php эти переменные выводятся так : $name.":".$bool."_";
Подумай, не будет ли лучше передавать данные в формате json или xml. http://flapps.ru/forum/topic3061.html
я понимаю что цикл должен быть перед условием, но так как тут bool представлен как b[1], то если поставить цикл перед условием на проверку bool'a (цикл вида i=0;i<n( количество строк в таблице = количеству имен новостей),i++), то она n раз проверит первую строку. Если бы b[1] был b[1], где i- номер строки в таблице, то проблемы бы не было...
Аватара пользователя
bodnar
Модератор
Модератор
Сообщения: 1399
Зарегистрирован: 03 апр 2010, 06:41

Re: Вывод при компиляции

Сообщение bodnar »

Что ты там мозга шатаешь, этот кусок кода есть в любом учебнике:

Код: Выделить всё

 $q = "SELECT * FROM `DataGrid`";$r = mysql_query($q) or die(mysql_error());for ($i=0; $i<mysql_num_rows($r); i++){                  $a = mysql_fetch_array($r, MYSQL_NUM);                  echo($a[1]);} 
dr1emaver
Сообщения: 78
Зарегистрирован: 16 июл 2011, 20:08

Re: Вывод при компиляции

Сообщение dr1emaver »

bodnar,спасибо, но это надо решить на уровне action..

Код: Выделить всё

var b;var h = e.target.data;h = h.split("_");for (var i = 0; i < h.length - 1; i++){    b = h[i].split(":");    dp.addItem({Name:b[0],bool:b[1],count:b[2],ok:"Ок"});//Добавляет элемент в конец списка элементов.} list.x = 0;list.y = 215;list.resizableColumns = false;list.setSize(800,600);list.columns = ["Name","bool","count","ok"];list.getColumnAt(3).width = 10;list.getColumnAt(2).width = 7;list.getColumnAt(1).width = 21;list.getColumnAt(0).width = 17;list.dataProvider = dp;if (b[1] == 0){    list.doubleClickEnabled = true;    list.addEventListener(ListEvent.ITEM_CLICK,news);}if (b[1] == 1){    test2.x = 300;    test2.y = 600;    test2.width = 700;    test2.height = 100;    test2.text = "Новость уже добавлена";    scene.addChild(test2); }scene.addChild(list);
Проверил условие, вроде работает правильно, но почему то когда стоит bool=1 все равно при нажатии count увеличивается ( чего не должно быть)... По умолчанию bool=0, поэтому при нажатии на ок count увеличивается на 1 и bool становится равным 1. Но сейчас к сожалению и при bool =1 и при bool =0 можно нажимать сколько угодно - count будет увеличиваться на 1. Но когда bool=0 и нажмем он переведется в bool=1. Это работает.А вот чтобы count не увеличивался при bool=1 это не работает.

В php код

Код: Выделить всё

while ($row = mysql_fetch_array($result)) {        echo $name.":".$bool.":".$count."_"; }
Ответить