Форум 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)
-   -   Зависимость событий, запись, результат (http://www.flasher.ru/forum/showthread.php?t=105347)

ARA 13.12.2007 17:11

Зависимость событий, запись, результат
 
Вложений: 1
Привет всем! вот второй день ломаю голову, и не могу подойти к даному вопросу!
В прикрепленном файле, своего рода пирамидка, спускаясь уровнем ниже, выбираешь нужный квадрат, и взависимости, от того что ты навыбирал, внизу, появиться фигура, из библиотеки!

Проблема в том что я не знаю как подойти к данной ситуации!
Создовать переменный, которые несут в себе значение (Number), ... тоесть, чтобы появился "красный круг" нужно набрать 25-й очей, "квадрат" 40 очей)

Либо как то можно использовать "intancee name" или "identifier linkage" ?

Я в прогрмировни, не силеню, подскажите как подойти к решению!
Спасибо!

ARA 15.12.2007 15:28

Вложений: 1
Вообщем проблемку решил, появилась вторая, мне не нравиться как пришлось разбросать код, аж на три кадра, как можно его упростить!

з.ы. вот исходник, до этого случайно не выложил!

nyctota 19.12.2007 12:58

Упростить можно. По нажатию на кнопку вызывать функцию, которая:
1. выключит эту кнопку
2. приаттачит нужные мувики из библиотеки
3. задаст их поведение при нажатии, наведении и т.п.

А чтобы сделать код универсальным, надо эту функцию написать универсально (или класс). Чтобы она была одна и подходила для любого уровня "пирамиды".
Хранить структуру "пирамиды" тоже, судя по всему, придется где-то. Универсально грузить её извне в виде хмл, например.

ARA 19.12.2007 14:49

nyctota спасибо! Учту на будущие, ибо уже начал код, такого вида, впихивать в приложение, нету к сожаленю время уже переделать!

Вообщем, во втором кадре, появляются две кнопка "a" и "c" при нажатие по одной из них, проверяется условие, которое расположено в третьем кадре: (я его сократил, то не нужным оказалось)
Код:

if (block[1] == "a") {
        _root.attachMovie("krug_1","krug_1",this.getNextHighestDepth(),{_x:50, _y:100});
};
};
if (block[1] == "c") {
        _root.attachMovie("krug_2","krug_2",this.getNextHighestDepth(),{_x:50, _y:100});
};
}

после проверки массива на наличие, того иои иного "string", он аттачит картинку!
Так вот проблема, если, кнопка "с" будет вести на на 4-й кадр, условие просто не выполниться! Мне теперь для каждого кадра писать все необходимые "if" и "else" это же жестока, как правильно сделать так, чтоб проверяла массив, который расположен водном месте, на наличие того или иного "string", и вызвать это функцию можно было бы, из любого кадра, банальным образом "function () {}" подскажите! Как этот цикл сделать: :)

nyctota 19.12.2007 16:13

В первом кадре — массив и функция проверки. И обращайся к ним из любого.

А вообще не нужно прыгать на кадры, чтоб проверять условия: можно делать это по нажатию на кнопки.

ARA 20.12.2007 09:44

Вот я тут почитал, сделал так:
Код:

proverka = function () {
for (i=0; i<al; i++) {
        if (str == dom[i]) {
                trace("OK in "+i);
                _root.attachMovie("krug","krug", this.getNextHighestDepth(),{_x:50, _y:60});
};
}

блин кажись я понял ошибку ... не объявлена переменная

nyctota 20.12.2007 10:29

Вообще-то создающая функцию конструкция должна выглядеть приблизительно так:
Код:

function proverka() {
for (i=0; i<al; i++) {
        if (str == dom[i]) {
                trace("OK in "+i);
                _root.attachMovie("krug","krug", this.getNextHighestDepth(),{_x:50, _y:60});
};
}

Остальное все еще более запутанно.

ARA 20.12.2007 10:43

nyctota, не могли бы пояснить, как лучше реализовать это!
Ибо я не програчист, в этой среде я рисую и анимирую, поэтому мне тяжело дается, а времени мало, второй день ломаю голову, читаю книгу!
так быстро мне не освоиться! :)

nyctota 20.12.2007 11:24

Если не программист, то не парься насчет того, что пришлось код разбросать по кадрам, потому что в противном случае придется становиться хотя бы немного программистом и программировать, программировать.. :)

ARA 21.12.2007 09:22

кому интересно, это было реализовано так!

в первом кадре :
Код:

function setPosition (x, y) {
        this[myVar]._x = x;
        this[myVar]._y = y;

ошибка: _root.idLib._y = y;
исправлено: this[myVar]._y = y;

на кнопке:
Код:

on (release){
        _parent.attachMovie("krug", "krug", 1);
        _global.myVar = "krug";
        _parent.setPosition (300, 50);
        trace(myVar);
}

Подскалал наш арт!
Ошибка была простая, не объявил переменную, и уже запустил функцию (поменялись строчки местами)


з.ы. и стоит после этого удивляться что аниматоры, и всякие творческие личности уходят с этого сайта (создать раздел ... и т.п.), когда им не могут даже подсказать такие простые вещи, ведь здесь достаточно гуру, которые это знали!? :(


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

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