Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Почему не работает код AS3? Помогите! (http://www.flasher.ru/forum/showthread.php?t=142674)

cucumber007 28.07.2010 10:38

Почему не работает код AS3? Помогите!
 
У меня не работает код, помогите разобраться, в чем причина.

Есть 18 областей в виде горизонтальных полос на экране, которые прорисовываються с помощью цикла
Код AS3:

for(i=1; i<19; i++) {
kv[i] = new Sprite()
kv[i].graphics.lineStyle(1, 0x000000)
kv[i].graphics.beginFill(0x1188ff)
kv[i].graphics.drawRect(140,z,884,35)
addChild(kv[i])
 
kv[i].addEventListener(MouseEvent.MOUSE_UP, stuk1)
 
z+=35}

Также есть кружок, который нужно перетаскивать
Код AS3:

var sh = new Sprite()
sh.graphics.lineStyle(1, 0x000000)
sh.graphics.beginFill(0x1188ff)
sh.graphics.drawCircle(200,300,25)
sh.addEventListener(MouseEvent.MOUSE_DOWN, startDr)
function startDr(e) {sh.startDrag()
sh.mouseEnabled = false;
dragged = sh}

Есть функция stuk1, которая срабатывает при отпускании кружка над одной из зон.
Код AS3:

function stuk1 (me) {
SetCoordY(me.target)
dragged.x = cx
dragged.y = cy
dragged.stopDrag()
dragged.mouseEnabled = true;
dragged = null
 
}

Нужно, чтобы кружок устанавливался в определенное место на экране (закреплялся над зоной, где его отпустили)

Я пробовал сделать так
Код AS3:

function SetCoordY (a) {
        switch (a) {
        case kv[1]: cy=52;
        case kv[2]: cy=87;
        case kv[3]: cy=122;
        case kv[4]: cy=157;
        case kv[5]: cy=192;
        case kv[6]: cy=227;
        case kv[7]: cy=262;
        case kv[8]: cy=297;
        case kv[9]: cy=332;
        case kv[10]: cy=367;
        case kv[11]: cy=402;
        case kv[12]: cy=437;
        case kv[13]: cy=472;
        case kv[14]: cy=507;
        case kv[15]: cy=542;
        case kv[16]: cy=577;
        case kv[17]: cy=612;
        case kv[18]: cy=647;
        default : trace("fuck!!!");
        }}

Но оно не работает и выводит Fuck!!! вместо изменения переменной cy. Надеюсь на вашу помощь.

mry 28.07.2010 10:54

в функции stuk1 вызывается SetCoordY(me.target), а хелп пишет что:
Цитата:

target Объект InteractiveObject под указателем. Свойство target не всегда является объектом из списка отображения, для которого зарегистрирован прослушиватель событий. Используйте свойство currentTarget, чтобы обратиться к объекту в списке отображения, обрабатывающему событие в данный момент.
и после case нужно писать break;
Цитата:

switch (a) {
case kv[1]: cy=52;break;
case kv[2]: cy=87;break;
...
Но это навскидку конечно не решает проблему

iNils 28.07.2010 12:14

1. Название темы не отражает сути вопроса (половину тем можно назвать "почему мой код не работает?").
2. На форуме ругаться запрещено на любом языке, даже в trace.


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

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