Просмотр полной версии : Не работает цикл
VareNick
03.08.2007, 03:01
Здравствуйте! Я знаком с action script сравнительно недавно, так что сильно не пинайте :)
Проблема в следующем: срабатывает только i=1, т.е. вот здесь получается _root.scroll.img1.onEnterFrame = function () {, ну и если i=2, соотвественно там 2 и т.д.
for(i=1;i<=7;i++){
_root.scroll["img"+i].onEnterFrame = function () {
if(this.hitTest(_xmouse, _ymouse)==true) {
status.text="true";
} else { status.text="false"; };
}
}
Помогите, пожалуйста! Заранее, благодарю!
во первых scroll и status явл. зарезервированными словами
во вторых, у тебя я так понял текстовое поле одно на всех, и получается, что в него пытается одновременно записаться 7 результатов.
VareNick
03.08.2007, 04:24
Изменил на scrolls и на statuss соответственно, не помогло, а причем тут поле вывода? переменная i туда не выводится.
for (var i = 0; i<=7; i++) {
_root.scrolls["img"+i].onEnterFrame = function() {
if (this.hitTest(_xmouse, _ymouse) == true) {
status.text = this;
} else {
//status[i].text = "false";
}
};
}
VareNick
03.08.2007, 14:30
Ну также срабатывает когда подвожу мышку к img1, а дальше уже не срабатывает, тем что вы изменили строчку status.text=this теперь он просто выводит где лежит этот мувик относительно корня.
в цикле ты прописываешь в onEnterFrame семи мувиков функцию проверки "находится над мувиком мышь или нет".
каждый кадр у тебя выполняется проверка этого условия для СЕМИ мувиков и все семь функций записывают результат в одно и то же текстовое поле. Функция одного мувика записывает туда true, все остальные false, функция чьего мувика срабатывает последняя, то и отображается у тебя в поле.
VareNick
04.08.2007, 00:31
А как сделать для каждого? Не подскажите?
сделай семь текстовых полей для каждого в отдельности :)
for(i=1;i<=7;i++){
_root.scroll["img"+i].onEnterFrame = function () {
if(this.hitTest(_xmouse, _ymouse)==true) {
status.text="true";
} else { status.text="false"; };
}
}
Увы и ах, но в ActionScript у циклов и прочих конструкций кроме "if" не может быть блока "else" как это например может быть в Python или Ruby.
Так же i нужно объявлять
for(var i:Number = 0; i <= 7 ; i ++)
А вообще это бред вешать столько onEnterFrame'ов
to Nirth
Увы и ах, но в ActionScript у циклов и прочих конструкций кроме "if" не может быть блока "else" как это например может быть в Python или Ruby.
в данном примене else относится к if, у него просто код неотформатирован.
А вообще это бред вешать столько onEnterFrame'ов
полностью с тобой согласен
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.