Форум 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)
-   -   sendAndLoad (http://www.flasher.ru/forum/showthread.php?t=106506)

Brainiac 13.01.2008 02:47

sendAndLoad
 
sendAndLoad принимает переменные в ролик только 1 раз? Я использую его чтобы отсылать и принимать переменные. Но он отсылает сколько угодно раз а принимает только 1 раз.
Так вот это я туплю? Или так и задумано? Или это баг или недоработка as2.0? Если действительно оно не может принимать переменные больше 1 раза подскажите возможно ли это в as3. Заранее благодарен...

etc 13.01.2008 06:41

Код в студию.

Brainiac 13.01.2008 11:53

Код:

function lad(){
var ld:LoadVars = new LoadVars();
ld.sendAndLoad ("engine2.php", ld, "POST");
ld.onData=function(date){
x=date;
        }
}


CrazyFlasher 13.01.2008 12:35

и? приведите пример когда вы повторно вызываете эту ф-ию, и она не срабатывает...а вообще лучше метод в методе не создавать...

Brainiac 13.01.2008 12:56

Какой смысл? Если в первый раз она нормально срабатывает и переменная принимается... Далее за ней идет вызов еще 1ой функции которая отправляет переменные, и она срабатывает всегда нормально и сколько угодно раз. Ну вообще вызывается она каждые десять секунд в onEnterFrame ивенте

CrazyFlasher 13.01.2008 12:59

ну так может быть ещё не сработало событие onData, а вы уже повторно вызываете? да, и не забывайте, что во флэше все события загрузки/отправки ассинхроны коду.

Brainiac 13.01.2008 13:26

С чего вдруг оно не сработало? Если я уже получил переменные и отобразил их на экране? Если даже такое допускать с чего он срабатывает 1 раз? Я разные способы пробовал уже... Если к примеру после получения onData удалять ld всеравно будет только 1 раз приниматся переменные из engine2

CrazyFlasher 13.01.2008 13:44

выложите код...хотя мне кажется что проблема в кривоте написания :)

Brainiac 13.01.2008 13:58

Я тебе написал код...

CrazyFlasher 13.01.2008 15:25

Код:

var l:LoadVars = new LoadVars();
l.onData = function(str:String){
        trace(str);
}
l.sendAndLoad("engine2.php", ld, "POST");

вот дефолтный пример...далее всё зависит от прямоты рук...а код я спрашивал не этот...а то место где вызывается loadVars

Brainiac 13.01.2008 17:36

Ты чегото не понимаеш? у меня 2жды используется sendAndLoad во первых в 1 и томже месте. Во вторых я сказал где вызывается функция что еше не ясно ?

Код:

timer = getTimer();

function lad(){
var ld:LoadVars = new LoadVars();
ld.sendAndLoad ("engine2.php", LO, "POST");
ld.onData=function(date){
x=date;
        }
}

_root.onEnterFrame=function(){
if(timer<(getTimer()+10000)){
lad();timer=getTimer();
}}


etc 13.01.2008 17:39

Что такое LO и зачем вам вообще sendAndLoad?

И смените тон, вы разговариваете с абсолютно незнакомым человеком.

Brainiac 13.01.2008 17:46

LO это опечатка там далжно быть ld. LoadVariables не очень удобно использовать. А при использование loadvars load получается тоже самое.
У меня на хосте находится пхп прослойка engine2 служащая для передачи данных между бд и флеш роликом как же я еще это сделаю :/

CrazyFlasher 13.01.2008 18:00

Код:

_root.onEnterFrame=function(){
if(timer<(getTimer()+10000)){
lad();timer=getTimer();
trace("!");
}}

поставьте в этом методе trace и посмотрите на его поведение...
Совет, используйте setInterval, и не надо писать в таком тоне, как будто здесь вам кто-то что-то должен

etc 13.01.2008 18:01

Достаточно использовать load и setInterval вместо sendAndLoad и onEnterFrame.
Ставьте трейсы и смотрите, вызывается ли вообще onData, верная ли область видимости и т.д.
Про странную логику в onEnterFrame вообще молчу.

Brainiac 13.01.2008 18:29

Цитата:

Сообщение от CrazyFlasher
Код:

_root.onEnterFrame=function(){
if(timer<(getTimer()+10000)){
lad();timer=getTimer();
trace("!");
}}

поставьте в этом методе trace и посмотрите на его поведение...
Совет, используйте setInterval, и не надо писать в таком тоне, как будто здесь вам кто-то что-то должен

ну
Код:

getTimer()-10000
должно быть. Я просто тебе быстро написал пример того что у меня... ну в общем это не относится к теме

Цитата:

Сообщение от __etc
Достаточно использовать load и setInterval вместо sendAndLoad и onEnterFrame.
Ставьте трейсы и смотрите, вызывается ли вообще onData, верная ли область видимости и т.д.
Про странную логику в onEnterFrame вообще молчу.

Ну вобщем спс за внимание я попробую это. Но всеже это не решение проблемы описанное в данной теме. Это способ выйти из ситуации вазможно...

etc 13.01.2008 18:35

Нет никакой проблемы и не было. У меня вообще подозрение на то, что данные просто кешируются и проблема не в sendAndLoad, а в том, что ничего не было сделано для предотвращения кеширования.

Brainiac 13.01.2008 18:40

У меня тоже... Все что я пробовал это в конце функции удалять loadVars

CrazyFlasher 13.01.2008 19:01

чтобы избежать кэширование прибавляете к url где файл, какое-нибудь число...например Math.random()

INK• 21.01.2008 03:48

Интересный стиль постановки вопросов...
как то даже боязно отвечать. Гляди и пошлет куда подальше.


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

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