Форум 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=88303)

Webas 21.11.2006 05:08

ОПП доступ к...
 
Разбираюсь с ОПП AS 2.0 и наткнулся на следущую проблему:
Что делаю...
На сцене есть муви клип А(clipA), в котором есть клипы В(clipB) и С(clipC):
Код:

_root.createEmptyMovieClip("clipA", _root.getNextHighestDepth());
_root.clipA.createEmptyMovieClip("clipB", _root.clipA.getNextHighestDepth());
_root.clipA.createEmptyMovieClip("clipC", _root.clipA.getNextHighestDepth());

Теперь хочу прикрепить класс myClass к А(clipA):
Код:

_root.clipA = new myClass();
В классе хочу получить доступ к B(clipB) и C(clipC) чтоб, к примеру, повесить на них onRelease:
Код:

class myClass {
        function myClass() {
                this.clipB.onRelease = function():Void  {
                        trace("B Released");
                };
                this.clipC.onRelease = function():Void  {
                        trace("C Released");
                };
        }
}

пытаюсь сделать так но флэш ругается...
Как это сделать грамотно? как вообще обращаться к клипам внутри A(clipA) из класса?

Бармалей 21.11.2006 11:42

Цитата:

Сообщение от Webas
пытаюсь сделать так но флэш ругается...

Неудивительно. Более безграмотного кода я еще не встречал. Жуткая мешанина ссылок на рут и подобия на AS2 классы.
Цитата:

Сообщение от Webas
Как это сделать грамотно? как вообще обращаться к клипам внутри A(clipA) из класса?

Прочитать "Основы ActionScript 2.0" Колина Мука.

etc 21.11.2006 14:01

Бармалей, это AS1, который запихнули в класс :)

Webas, если уж ООП, то ссылки на _root вообще не должно быть (в идеале, конечно). Мувиклипы через конструктор не создаются.

Что делать? Купить пару толстых книжек по AS2.

Webas 21.11.2006 15:04

Ребят, я в курсе что у мя тут через зопу написано, именно поэтому я и спаршиваю... и пишу "Как это сделать грамотно?" чтоб понять что к чему... А вам нибось лиш бы поупустить кого чтоль??!?!
Если можете то напишите как это все реализовать правильно в стиле AS2 ООП...

etc 21.11.2006 15:32

Код:

import mx.utils.Delegate;
import AClass;
import BClass;

class MyClass extends MovieClip {
    private var clipA:AClass;
    private var clipB:BClass;
    private function MyClass() {
        super();
        this.clipA = AClass(this.attachMovie('clipA','clipA',0));
        this.clipB = BClass(this.attachMovie('clipB','clipB',1));
        this.clipA.onRelease = Delegate.create(this,this.releaseHandlerA);
        this.clipB.onRelease = Delegate.create(this,this.releaseHandlerB);
    }
    private function releaseHandlerA():Void {
        trace('ClipA released');
    }
    private function releaseHandlerB():Void {
        trace('ClipB released');
    }
}

Естесственно, не забыть прописать linkage и класс MyClass для мувика в либе.
Дальше разбирайся сам.

ASp 21.11.2006 23:37

__etc, а зачем super()? Сам же писал, что MC не создаются через конструктор. Вообщем, Webas, читай книги по ООП, хотя бы того же К. Мука.

etc 21.11.2006 23:52

ASp, прежде чем советовать, потрудитесь сами ее прочитать, а не нести чушь. Слышал звон, а не знаешь, где он. (русская народная пословица)

screamge 22.11.2006 02:21

Код:

_root.createEmptyMovieClip ("a", 1)
_root.a.createEmptyMovieClip ("b" , 1)
var mc:MovieClip = _root.a.b;
mc._alpha = 40

trace (mc._alpha)

при трасивоки показывает "39.84375" )), эт значит что по этому адрессу он находит нужный МС.

Webas 22.11.2006 04:15

Прошарил седня все магазы, ничегошеньки(( Нет, этой книги.
По инету заказывать дык ее на складах нет, тираж то всего 2000 экз., а сколько флэшеров развелось)) Может знает где мона найти ... или пришлет по почте, ОБЯЗАЮСЬ вернуть после усердного изучения!

iNils 22.11.2006 06:50

http://www.books.ru/shop/books/188476
http://www.books.ru/shop/books/390545


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

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