Форум 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)
-   -   движение мувика, созданного в классе, НЕ наследуемом от MovieClip (http://www.flasher.ru/forum/showthread.php?t=110466)

Kuruki 03.04.2008 12:54

движение мувика, созданного в классе, НЕ наследуемом от MovieClip
 
Приветствую Вас!
Не получается заставить двигаться мувик. Мувик создается в конструкторе класса Ball(здесь всё нормально, т.е. координаты задаются). Метод moveDown вызывается onEnterFrame(trace работает).
код класса(упрощенный):
Код:

class Ball {
        public var speed:Number = 2;
        public var ball_mc:MovieClip;
        public function Ball() {
                ball_mc = _root.attachMovie("ball", "b", 1);
                ball_mc._x = 100;//в конструкторе это работает
                ball_mc._y = 100;
                moving();
        }
        public function moving():Void {
                ball_mc.onEnterFrame = moveDown;
        }
        public function moveDown():Void {
                ball_mc._y += speed;
                trace("I'm move");//trace работает, мувик не движется...
        }
}

На гл. временной диаграмме следующий код var b:Ball = new Ball;
А в библиотеке имеется мувик ball c одноименным идентификатором.
Знаю, что можно наследовать Ball от MovieClip, а потом просто аттачить мувик. Так работает, но мне очень не надо наследоваться от MovieClip.
Наверное вопрос уже подымался, но я не смог его кратко сформулировать в поиске.
Спасибо.

qazwsx 03.04.2008 13:12

В этом случае по твоему что такое _x, _y клипа?

Kuruki 03.04.2008 13:23

Не совсем понял твой вопрос.
_x и _y - это свойства мувика, отвечающие за его местоположение на сцене.

qazwsx 03.04.2008 13:34

Во первых у ball_mc никогда не случается событие onEnterFrame во вторых функция moveDown и moving не видит ball_mc

Kuruki 03.04.2008 13:41

Событие onEnterFrame у ball_mc случается как и положено(не веришь - протестируй).
А заставить их видеть мувик можно? Хотя бы намекни как, если долго объяснять.

iNils 03.04.2008 13:47

Код:

import mx.utils.Delegate
class Ball {
        public var speed:Number = 2;
        public var ball_mc:MovieClip;
        public function Ball (mcParent:MovieClip, depth:Number, obj:Object) {
                if (depth == undefined) {
                        depth = mcParent.getNextHighestDepth ()
                }
                ball_mc = mcParent.attachMovie("ball", "b" + depth, depth, obj);
                moving ();
        }
        public function moving ():Void {
               
                ball_mc.onEnterFrame = Delegate.create (this, moveDown);
        }
        public function moveDown():Void {
                ball_mc._y += speed;
                trace("I'm move");//trace работает, мувик не движется...
        }
}

Код:

new Ball (this, null, {_x:100, _y:100});

Kuruki 03.04.2008 14:11

Ай спасиба, дарагой!
Я попой чуял, что здесь нужно импортировать "встроенные" классы, но ничего о них не знаю, кроме фильтров. Где вообще люди узнают про них, про их методы? Поиск опять же нужных результатов не дал.(искал "встроенные классы", может не то искал?).

chingachgoog 03.04.2008 14:33

Ради интереса, не напишите вариант когда у вас работало? С наследованием.

Kuruki 03.04.2008 15:29

Напишу. Безусловно код немного изменится.
В классе:
Код:

class Ball extends MovieClip {
        public var speed:Number = 2;
        public function Ball() {
                _x = 100;
                _y = 100;
                moving();
        }
        public function moving():Void {
                onEnterFrame = moveDown;
        }
        public function moveDown():Void {
                _y += speed;
        }
}

А на гл. временной диаграмме:
this.attachMovie("ball","ball_mc",1);
В библиотеке должен быть мувик с идентификатором "ball", а также в поле Class впишите Ball.

Obi 03.04.2008 15:48

Цитата:

Сообщение от Kuruki
Ай спасиба, дарагой!
Я попой чуял, что здесь нужно импортировать "встроенные" классы, но ничего о них не знаю, кроме фильтров. Где вообще люди узнают про них, про их методы? Поиск опять же нужных результатов не дал.(искал "встроенные классы", может не то искал?).

F1 - > ActionScript 2.0 Language Reference -> ActionScript classes


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

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