Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   строгая типизация 3.0 (http://www.flasher.ru/forum/showthread.php?t=108775)

udaaff 01.03.2008 15:24

to BlooDHounD
Меня мало интересует кто что изобрел. Там дано хорошее описание соглашений, которые приминительны в том числе и к ActionScript и это факт.

ladon 01.03.2008 19:52

Цитата:

Сообщение от __etc
Про название методов уже сказали.
А почему он публичный? Это обработчик, принадлежащий экземпляру класса, с какой стати какой-то внешний объект имеет возможность подписать этот обработчик на какие-то левые события?

Мммм, а разве приватные методы может кто-то вызвать кроме самого объекта?

etc 01.03.2008 20:00

Цитата:

Сообщение от ladon
Мммм, а разве приватные методы может кто-то вызвать кроме самого объекта?

Извне — никто.

ladon 01.03.2008 21:22

А как тогда произойдет вызов функции по событию таймера если сделать ее не публичной?
Или мы говорим про какое то другое "извне"?

etc 01.03.2008 21:54

Наглядный пример:

Код:

package {
        import flash.display.Sprite;
       
        public class Listener extends Sprite {
               
                public function Listener() {
                        super();
                        var dispatcher:Dispatcher = new Dispatcher();
                        dispatcher.addListener(this, this.handler);
                }
               
                private function handler():void {
                        trace('handler() called');
                }
        }
}

Код:

package {
        public class Dispatcher {
                public function addListener(listener:Object, target:Function):void {
                        target();
                        // listener.handler();
                }
        }
}

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

Iv 03.03.2008 17:15

Ситуация такова, что вещатель и слушатель независимы друг от друга. И это никак не может быть ошибкой и ни в каких настройках синтаксиса это не задать.

Другое дело, что ты можешь перекрыть (override) метод addEventListener у класса, которому принадлежит твой объект time и в нем проверить допустимость добавления слушателя и кинуть эксепшн если операция по твоему мнению недопустима.

VovkaMorkovka 03.03.2008 18:54

Цитата:

Сообщение от BlooDHounD
нет. то, что у джавы сходство ещё с 10 языками, ничё страшного? параллельно ссылки приведите и на них ... а то очень однобокий взгляд :)

Офтоп конечно, но на самом деле идеология AS 3.0 весьма схожа с Java.
В AS, кстати, весьма нехватает потоков и ключевого слова synchronized.
Из за отсутствия синхронизации у меня были глюки с синглтоном с отложенной инициализацией.

BlooDHounD 03.03.2008 19:00

ну то что у вас были глюки, я думаю в этом нет вины отсутсвия synchronized, так как нет потоков.


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

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