Помощь · Поиск · Пользователи · Календарь
Полная версия этой страницы: Помогите!
Flash Zone Forum > Macromedia Flash > ActionScript
gorillaz
Не подскажите почему у меня не работает вот этот скрипт?
Код
i = 1;
кнопка_показать.onRelease = function()
{
    i = 1;
};
кнопка_скрыть.onRelease = function()
{
    i = 2;
};
if (i == 1){
    клип_текст.gotoAndPlay(1);
}
else if (i == 2){
    клип_текст.gotoAndPlay(30);
}
Rohan
злой Ктулху зохавал мой моск!!!
Событие - это событие; оно происходит не сразу же, а после какого-то действия. А весь последующий код выполнится сразу после входа в кадр. Тут надо не к флешерам, тут надо какие-то элементарные основы программирования почитать...
alexart
Rohan
Этот код имеет смысл, если ролик зациклен.
Только назначение событий надо бы в 1м кадре разместить, код с if и далее во 2м кадре, а в 3м gotoAndPlay(2) ...
Ну а дальше, все зависит от реализации остальных частей мувика.

gorillaz выложи исходник и объясни идею
Auron
CODE

i=1
this.my_btn.onPress = function() {
if (i == 1) {
клип_текст.gotoAndPlay(1);
i = 0;
} else {
клип_текст.gotoAndPlay(30);
i = 1;
}
}



попробуй так - у меня работает.
Rohan
Цитата(alexart @ 30.06.2007 - 00:11) *
Rohan
Этот код имеет смысл, если ролик зациклен.
Только назначение событий надо бы в 1м кадре разместить, код с if и далее во 2м кадре, а в 3м gotoAndPlay(2) ...
Ну а дальше, все зависит от реализации остальных частей мувика.

конечно, имеет, при выполнении череды дополнительных условий - такое про любой неработающий код можно сказать. "Он имеет смысл, только если...[целиком его переписать]"
Зацикливать всякими там "gotoAndPlay" - не делайте такое. Вы просто задолбали. Я перебираю СОТНИ роликов, которые мне присылают заказчики - типа "флешер делал, но не осилил" - сколько же приходится материться из-за криворуких "флешеров", которые че-то там зацикливают, раскидывают примитивный код по всему ролику, юзают setProperty, публикуя при этом под восьмой флеш, и т.д. и т.п.
Rohan
Код
кнопка_показать.onRelease = function()
{
    _root.клип_текст.gotoAndPlay(1);
};
кнопка_скрыть.onRelease = function()
{
    _root.клип_текст.gotoAndPlay(30);
};
tiHo
gorillaz, я же тебе в аське дал код. чем он тебя не устраивает
gorillaz
Не всем конечно спасибо, но я сделал не много подругому.
tiHo твой код мне не очень подходил, потому что мне его еще надо было связывать с языками на портале.
Тарас
Цитата(Rohan @ 30.06.2007 - 10:30) *
Я перебираю СОТНИ роликов, которые мне присылают заказчики - типа "флешер делал, но не осилил" - сколько же приходится материться из-за криворуких "флешеров", которые че-то там зацикливают, раскидывают примитивный код по всему ролику, юзают setProperty, публикуя при этом под восьмой флеш, и т.д. и т.п.

А что, в восьмом флеше setProperty не работает? unsure.gif
P. S. ( Я токо учусь, и мне интерестно, в книгах всего не найдеш ведь)
tiHo
вроде работает, вот только я думаю Рохан хотел сказать что используют setProperty там где и без нее можно обойтись.
Тарас
Цитата(tiHo @ 30.06.2007 - 23:18) *
вроде работает, вот только я думаю Рохан хотел сказать что используют setProperty там где и без нее можно обойтись.

Тоесть ? А как задать свойства для объекта? Через this ?
tiHo
покажи конкретно код, тогда и разберемся как можно.
PS> я вообще никогда неиспользовал setproperty
Тарас
Цитата(tiHo @ 1.07.2007 - 14:08) *
покажи конкретно код, тогда и разберемся как можно.
PS> я вообще никогда неиспользовал setproperty

Ну вопше то я пытался с этим разобраться в этом посте /forum/index.php?showtopic=2106,
но тока запутался еще больше. Я понимаю , что задать свойство объекту можно несколькими путями , но как оптимально и как для каких публикаций правильно не врубаюсь ( я только изучать начал Action Script) Еще в том посте я просил что б мне разложили все по полочкам, что б дальнейшем я не делел грубых ошибок.
tiHo
небыло у меня таких ситуаций когда нужно было использовать setProperty. как то всегда обычным вызовом свойств ограничавался.
ты покачто забудь о setProperty вообще. набирайся скилла во флешке. и сам тогда поймешь где она нужна.(если поймеш еще.. потому что я так и не понял где без неё необойтись)

а this ето ссылка на то на чем пишеш функцию(событие, метод, или еще ченить).(я ето так понимаю)

например

gg.onEnterFrame=function(){
this._x++; // одно и тоже что и gg._x++
}

тоесть если ты вдруг измениш имя gg то ненада будет менять в самой функции. ну ето блин тяжело объяснить(мне), или я просто неумею.
Rohan
объясняю: при использовании setProperty вы привязываетесь к строке, т.е. к имени клипа. Но имя - это не клип, имя - это лишь одно из свойств этого клипа. Лично я обычно обращаюсь непосредственно к участку памяти, выделенному под мувик. Т.е., если вы сделаете что-то вроде
Код
var mc:MovieClip = _root["blahblah"];

то получите ссылку непосредственно на клип. И нечто вроде
Код
_root["blah"]._name = "newName";
при использовании setProperty приведет к тому что весь ваш код свалится - вы ведь по имени обращаетесь; но mc от этого плохо не станет - клип остался прежним, ссылка осталась прежней, изменилось лишь одно свойство клипа.
Зачем это все и почему это важно? Объясняю: то, что так просто не работало раньше, но замечательно работает сейчас, в третьем скрипте:
Код
var mc:MovieClip = new MovieClip();
- программное создание клипа. Где вы здесь видите имя? А нету. По умолчанию его не нужно задавать вручную. Имя клипа в третьем скрипте - нечто, в принципе, абсолютно ненужное.
Тарас
Ну вот я кажется и наблизился к моменту истины.
И так, this и setProperty используются в скриптах , которые пишутся на объектах, а поскольку писать на объектах - это ЗЛО ( усвоил на этом форуме) , то задать свойство объекту можно : скрипт пишем на отдельном слое Action и обращаемся к объекту через имя Instance name (_root. name = свойство). Я правильно понял ?
tiHo
впринципе да.. но необязательно будет _root.name._x=50
может также быть клип вложен в другой клип: name1.name2._width=300;
вообщем тебе с "ТОЧКОЙ" нада разобраться. чтобы добраться до клипа который лежит в другом клипе другого клипа, нужно сделать так клип1.клип2.клип3 и дальше уже что нужно..
ох синтаксис синтаксис..
насамом деле ето просто. привыкнуть тока нужно
alexart
Цитата
_root. name = свойство

нет, вот так:
Код
_root.name.свойство = "значение";


Ну и понятно, как отметил tiHo, что если клип в клипе и п.д. нужно ему весь "путь" указать
Код
_root.name1.name2. ... .nameX.свойство = "значение";
Тарас
Я уже понял. Спасибо. Интерестное дело - вопрос задал тут /forum/index.php?showtopic=2106 а выяснил все в этой теме. Но все равно большое спасибо всем кто тратил свое время на меня. Я еще долго буду задавать вам вопросы - я тольку изучаю флеш и ох как много еще непонятно, с чем самому не подсилу разобраться.
Русская версия IP.Board © 2001-2009 IPS, Inc.