PDA

Просмотр полной версии : Помогите с загрузкой, пожалуйста!


weblancer
17.10.2007, 12:55
Задача банальная, но я чего-то непонимаю.
Скажу сразу, в факе рылся, нашел вариант решения проблемы, он работает, но мне хочется понимания, что я делаю, а не просто чужой рабочий код.

Если кому не влом, объясните, пожалуйста, в двух словах? Могу угостить в Москве пивом. :)

Есть текстовый файл sсhem.txt в нем 4 переменные:

vsq1=1.jpg&vsq2=2.jpg&vsq3=2.jpg&vsq4=1.jpg


Во флеше пишу:

loadVariables ("schem.txt", vars);
trace(vars.vsq1);

В результате - trace выдает undeffined, хотя в дебагере видно, что в level0.vars определены переменные vsq1, vsq2, vsq3 и vsq4 с правильными значениями. И воспользоваться этими переменными не удается никак.


В чем проблема?

Carrion
17.10.2007, 13:10
возможно не успело загрузиться
this.createEmptyMovieClip("vars",this.getNextHighestDepth());
loadVariables("schem.txt", vars);
function checkParamsLoaded() {
if (vars.vsq1 == undefined) {
trace("not yet.");
} else {
trace(vars.vsq1)
clearInterval(param_interval);
}
}
var param_interval:Number = setInterval(checkParamsLoaded, 100);

weblancer
17.10.2007, 13:26
Так оно только внутри процедуры работает... Если сделать вот так:

loadVariables("schem.txt", vars);

function checkParamsLoaded() {
if (vars.vsq1 == undefined) {
trace("not yet.");
} else {
//trace(vars.vsq1)
clearInterval(param_interval);
}
}

var param_interval:Number = setInterval(checkParamsLoaded, 100);

trace(vars.vsq1);

то опять undeffined получаем...

Основной ролик продолжает выполняться не дожидаясь конца процедуры?

Carrion
17.10.2007, 13:54
эээ.....
т.е. "не дожидаясь конца процедуры"?
функция может вообще не вызываться:
function f(){
trace("function");
}
// f();
trace("code")
или вызываться (откамменьте).
================================
а теперь по поводу вашего вопроса: в то время как вы пытаетесь вывести значение - оно ещё не загрузилось, т.е. loadVariable не сработало.
сделайте кнопку и не него повесте обработчик нажатия, понажимайте, и тогда вы надеюсь поймете принцип работы:
btn.onPress = function(){
trace(vars.vsq1);
}

iNils
17.10.2007, 13:54
weblancer, для оформления своего кода, надо использовать теги . Исправте 1-ый и 4-вы пост. Кроме того, есть кнопка http://www.flasher.ru/forum/images/russian/style3/buttons/edit.gif, поэтому не надо создавать несколько сообщений подряд, надо исправить последнее в теме.

weblancer
17.10.2007, 14:09
to iNils : Прошу прощения, все понял.

to Carrion: Большое спасибо, кажется, разобрался..

Carrion
17.10.2007, 14:13
нет, если нужно чтобы определенный код выполнился в определенное время - пользуйтесь функциями! они действительно помогают)

weblancer
17.10.2007, 14:38
Будете в Москве - пиво за мной. :)

Mr. Fixit
17.10.2007, 15:23
не советую использовать loadVariables,
пользуйтесь классом LoadVars.

weblancer
17.10.2007, 16:43
to Mr. Fixit: Спасибо, учту.

to Carrion: А если нет функции паузы, то, может, тогда кто-нибудь подскажет, как сделать программно мувику эффект фэйдинга? (когда он плавно становится прозрачным)

Мыкыта
17.10.2007, 17:51
weblancer
смотри в хелпе свойства мувика, тебе нужна в частности _alpha

Carrion
17.10.2007, 17:55
с помощью tweens - делается плавное. с помощью _alpha - прозрачность)
читай help. будут вопросы - обращайтесь)

weblancer
17.10.2007, 18:02
to Мыкыта
Да про свойство _alpha я знаю, мне интересно как сделать ПЛАВНЫЙ фейд. Ведь если я напишу


for (var i:Number = 1; i <= 100; i++) {
myMovie.alpha = i;
}



эта штука мигнет мгновенно и все.

to Carrion: Спасибо, понял.. Надо как-то скомбинировать ActionScript и свойства мувика?
Задача у меня такая - надо брать мувик с картинкой, медленно делать прозрачным, в прозрачный (невидимый) грузить новую картинку и медленно снова возвращать непрозрачность..

iNils
17.10.2007, 18:07
weblancer, прочитайте про класс Tween

weblancer
17.10.2007, 18:13
Спасибо.. Попробую.
Не даются мне классы как идеология..
Все пытаюсь без них обойтись, да видно не судьба..

Carrion
17.10.2007, 18:14
а в AS3 без них вообще никак. так что изучайте)

weblancer
17.10.2007, 18:35
to Carrion: Тогда, пожалуйста, хоть книжку грамотную посоветуйте, или ссылку, если знаете. Тут на форуме искал - нашел только обсуждение.

Мыкыта
17.10.2007, 18:39
дело втом что цикл обрабатывается до отрисовки кадра посему никакая анимация не получится =) можно навесить на onEnterFrame но лутше с помощью класа Tween как советовали постами выше

weblancer
17.10.2007, 18:45
ХМ.. у меня flash8 и в хелпе - об AS3 ни слова..
Это значит что - это значит - все?
Финита ля комедиа, пока не куплю что-то поновее?

iNils
17.10.2007, 18:46
Без АС3 вы еще пару лет спокойно проживете.
Некоторые до сих пор пишут на АС1 и чуствуют себя прекрасно.

Carrion
17.10.2007, 18:50
as3 только в flash9 появилось.
а вообще учитесь искать сами - тогда быстрее и глубже все поймете, честно. в обсуждениях на форумах тоже много чего полезного. и fag - полезная вещь.
первое что под руку попалось -
http://demiart.ru/forum/lofi/index.php/t7707.html.
наверное не лучший вариант

weblancer
17.10.2007, 18:54
Хе! Премного благодарен! нашел в хелпе нужное место.
Правда, в понимании классов не продвинулся, но задачу решил. :)
макака макакой.