Вход

Просмотр полной версии : Использование стандартных компонентов в FlashDevelop?


Волгоградец
30.06.2008, 11:30
Здравствуйте! Как можно юзать компоненты в FD? FD на флэшке ношу.

Fernando Costa
30.06.2008, 14:21
http://www.flashdevelop.org/community/viewtopic.php?t=1061

Волгоградец
30.06.2008, 14:41
Спасибо!

Волгоградец
01.07.2008, 11:09
Swc Extractor недоступен. После распаковки доступны ASI классы - я так думаю их надо переименовать в .as, добавить в папку и изменить внутреннее описание. Если не лень, выложите кто-нибудь пример как должен выглядеть intrinsic class компонента...

uncle_sam
01.07.2008, 13:03
Филип пишет там на форуме:
Extract the SWF contained in the SWC/ZIP file and add it to your project library.
а где в FD находится эта библиотека проекта?

и еще вопрос. вот выдаются ошибки при компиляции и пишут Please force compilation of this class by adding it to the commandline.
а как мне этот класс в командлайн добавить?

Волгоградец
01.07.2008, 13:11
Создаешь папку, туда кидаешь файлы, жмешь правой кнопкой на файле - add to library.
Но как дальше быть? Каким методом аттачить компонент?

uncle_sam
01.07.2008, 14:17
нету у меня в контекстном меню add to library.
или add to trusted paths имеется ввиду?

Волгоградец
01.07.2008, 15:47
См. во вложении.

wvxvw
01.07.2008, 18:02
С компонентами я делал так: вытаскивал в флешку нужные компоненты, компилировал ее в SWF/SWC, а потом этот SWF/SWC подкючал, как библиотеку (ну а из библиотеки они аттачатся, как и любой другой клип), единственное, в старых версиях ФД не было mx классов (они нужны компонентам для автокомплита). В настройках компайлера можно указать "использовать mx классы", но я все равно часть из них переделал, поэтому просто сложил то, что мне из них было нужно в отдельную папочку и подключал, как и любой другой проэкт.
Но, в качестве совета... лучше оставить их в покое... они не просто плохо, они просто отвратно написаны =) только для того чтобы перекомпилировать одну несчастную кнопку прийдется перекопать весь фреймворк добавляя типизацию, вынося объявления переменных из тела "ифа" или цикла... При чем это не единичные случаи... оно там все так написано что волосы дыбом встают =) Т.е. на класс из 500 строк как минимум 500 ошибок =)

Т.е. чтобы было понятнее - вставляя в свой проект одну кнопку из стандартных компонентов вы тащите туда 2 десятка классов исполненых в стиле "клинопись шумерсокого двоечника-графомана"...

Волгоградец
01.07.2008, 18:21
Т.е. все-таки методом attachMovie надо вызывать их из библиотеки. И на сцене они, получается, будут клипами. И как я применю, например, к клипу метод move () или событие click?

uncle_sam
01.07.2008, 18:32
Волгоградец, спасибо за картинку. я просто создавал Flash IDE project.
а у тебя, видимо, library project.

если еще нужен этот swcExtractor то смотри вложение.

инструкция по использованию:

Here's a small command line tool (.NET 1.1, source included) to extract intrinsic classes from a compiled clip (SWC).
Don't miss this tool is you work with MTASC and/or FlashDevelop!

Usage: Unzip and drag&drop the SWC on the executable (in Bin/Release).

wvxvw
01.07.2008, 18:58
var sb:SimpleButton = SimpleButton(somewhere.attachMovie("assetName", "newName", someDepth));
Только вот когда вы это сделаете - зажмурьтесь =) т.как МТАСК будет долго плеваться =)

Волгоградец
02.07.2008, 11:32
Вот как надо работать с компанентами в FD:
1. Беерм .swc файл компонента, переименовываем его в .zip.
2. Перетаскиваем архив на exe'шник SwcExtractor - создается папка с instrisic классами - кидаем ее в какую-нибудь папку.
3. В .zip папке ищем .swf файл компонента и добавляем его в библиотеку в FD.
4. Добавляем папку с instrisic классами в глобальный путь видимости классов в FD.
5. Пишем:
import mx.controls.Button;

class A
{
function A ()
{
var myButton:Button = _root.createClassObject(Button, "myButton", _root.getNextHighestDepth());
}
}
Работает и не ругается.

wvxvw
02.07.2008, 18:42
Хм, интересная штука =) не подумал, что можно .asi вместо класса использовать, чтобы не ругался =) Но в стрикт муд все равно нужно будет переделывать, зато хоть не так много =)

Волгоградец
02.07.2008, 20:12
А что такое "стрикт муд"?

wvxvw
02.07.2008, 20:43
Это настройка того на сколько дотошно будет проверятся синтаксис. Т.е. в Strict Mode нетипизированая переменная вызовет ошибку, например. Кому непривычно - будет много мороки поначалу, но когда привыкаешь - понимаешь, что удобно =) Т.как ошибок и меньше, и найти легче =)

Волгоградец
02.07.2008, 21:10
Ух ты - классная штука. Буду использовать теперь. А почему во встроенных классах так много ошибок? Как они вообще работают то?

wvxvw
02.07.2008, 21:23
Ну, компиляторы же разные =) MTASC - более строгий (если синтаксис укладывается в более жесткие рамки, его легче распарсить и перевести в байткод - поэтому он и работает быстрее флешевого). Т.е. понадобится гораздо меньше проверок.
А почему так компоненты написаны... ну не знаю... можно только гадать =) Вообще, глядя на них - впечатление, как будто их писали в спешке и лишь бы отделаться, при чем в каком-то редакторе не предназначеном для АС... не знаю, возможно в ВС или какой-нть плагин к Эклипсу (типа продвинутого ноутпада =).

uncle_sam
03.07.2008, 17:01
я всё сделал так как описал Волгоградец и в итоге у меня вылезает ошибка

C:\Documents and Settings\1\Local Settings\Application Data\Macromedia\Flash 8\en\Configuration\Classes/mx/core/ScrollView.as:174: characters 1-42 : type error Object should be String

скажите, что я не так делаю?

Волгоградец
03.07.2008, 17:20
Все правильно делаешь. А это - результат ошибок в классах компонентов. Там либо возвращаемый результат функции, либо аргумент имеет неверный тип данных - исправь.

uncle_sam
03.07.2008, 19:17
спасибо большое, всё заработало!