![]() |
Секрет flash.utils или функции вне классов
Привет всем!
Возникло желание определить десяток своих часто используемых функций вне классов, то есть как бы на "TopLevel" уровне (в смысле вызов функции не через класс). Так же, как это сделано в пакете flash.utils. Хотелось бы узнать как это можно/правильно сделать. Пока что получилось лишь создать MyFunc.as, а в нём собсна public function MyFunc(). Есть ли возможность разместить в MyFunc.as ещё несколько публичных функций и переменных? Заранее спасибо откликнувшимся! |
Цитата:
|
один файл – одна функция.
опоздал :) |
Я лично это делаю статическими методами отдельного класса.
Т.е., если бы не существовало Math.random() и Math.PI - я бы сделал класс Math, а в нем - публичный статический метод random() и публичная статическая константа PI. Если, конечно, я правильно понял, что нужно автору. |
mikhailk, я тоже так делаю... все так делают))))))) хотелось бы именно понять как вынести функции из классов)
Цитата:
|
Цитата:
Это наоборот хорошо для переноса. Отдельная независимая сущность - отдельный файл. Конечно если в CSX кодить - лишние файлы - лишняя головная боль. Но в том же FD классы, ф-ции и пакеты вообще не воспринимаются как файлы и папки - просто некая упорядоченная структура - которая отображается в дереве проекта. В Realaxy вообще нет файлов - их нужно получать экспортом. |
Цитата:
|
Цитата:
Знакомая функция? |
видел как-то пару раз ))
тогда да. только отдельными файлами. У меня только идиотский вопрос, а какой в этом смысл? Чем navigateToURL() лучше, чем Utils.navigateToURL()? |
Тем, что тянув какую то функцию не нужно тянуть за собой огромный класс с кучей методов.
Цитата:
|
Цитата:
Цитата:
пакет flash.utils просто ввёл в заблуждение - FlashDevelop открывает его декларацию одним файлом... вот и подумал, что возможно поместить в один файл несколько функций, но видимо функции типа setTimeout и getTimer - это тоже отдельные файлы по одной функции в каждом, а значит секрета flash.utils нет. Цитата:
|
Цитата:
Но вообще-то, у меня складывается ощущение, что я присутствую при изобретении велосипеда. Все подсоединяемые библиотеки как правило содержат больше функций, чем используется в конкретном приложении. Так что теперь, не пользоваться библиотеками? |
Цитата:
кстати... Цитата:
Достаточно лишь myFunc() Если функция используется 50 раз в одном приложении, лишних полкилобайта как не бывало :rolleyes: |
Если бы с этой целью - препроцессором до компиляции все имена полей класса сжимались бы до 1-2 байтов.
|
А вот мне, кстати, наоборот кажется, что функции, не принадлежащие никакому классу (navigateToURL,setTimeout и т.д.) - это не слишком правильно с точки зрения того же пресловутого ООП.
Логичнее было бы приписать их какому-нибудь классу (хотя бы и System). Для единообразия. |
Как по мне - создание даже класса System это создание лишнего класса, который должен нести в себе какую-то смысловую нагрузку. Например в Math - туча статических методов и это удобно, потому что порой называем переменные cos, sin - тут не запутаешься, и все они четко принадлежат к математике.
Не хочу разводить холивар, но тут я не стороне Адоуба: не стоит создавать класс, который сам по себе не несёт смысловой нагрузки, но содержит какие-то common методы; Класс на то и класс, чтобы принадлежать к исполнению конкретного рода задачи, он не должен быть сборищем методов друг с другом не связанных. |
| Часовой пояс GMT +4, время: 06:28. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.