Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Flash > Объектное програмирование в Flash


Автор: Berliner 28.9.2005, 09:17
Здраствйте я новичок во Flash!
прочитал в книге про язык Flash(книга больше для дизайнеров и про язык толкового ничего нет)
Скажите например если я кмнул кнопку "на форму" ка сделать так чтобы при навидении кнопка поменяла цвет? я так понимаю типа
class Button{

Button1= new Button();

}

Подскажите пример пожалуста smile

Автор: Berliner 28.9.2005, 10:13
прочитал статью на форуме по ActionScript и ООП но меня интерисует любое практичское действие над обїектом кнопка которую я положу на форму.

Автор: AlDev 29.9.2005, 04:26
Код

class myBtn extends MovieClip
{
  private var clr:Color;
  public function myBtn()
  {
    this.clr = new Color(this);
  }
  public function onRollOver():Void
  {
    this.clr.setRGB(0xFFFFFF);
  }
  public function onRollOut():Void
  {
    this.clr.setRGB(0x000000);
  }
}

в библиотеке выставляешь as2 класс для клипа - myBtn

Автор: Berliner 29.9.2005, 14:30
Код

Scene=Scene 1, Layer=Layer 1, Frame=1: Line 1: ';' expected
     class myBtn extends MovieClip

Scene=Scene 1, Layer=Layer 1, Frame=1: Line 3: ';' expected
       private var clr:Color;

Scene=Scene 1, Layer=Layer 1, Frame=1: Line 4: ';' expected
       public function myBtn()

Scene=Scene 1, Layer=Layer 1, Frame=1: Line 8: ';' expected
       public function onRollOver():Void

Scene=Scene 1, Layer=Layer 1, Frame=1: Line 12: ';' expected
       public function onRollOut():Void

Scene=Scene 1, Layer=Layer 1, Frame=1: Line 2: Statement must appear within on handler
     {



Вот такие ошибки я повесил кнопку и просто прописал код smile я наверное что-то не так сделал

Цитата
в библиотеке выставляешь as2 класс для клипа - myBtn
я не знаю где это smile



Автор: AlDev 29.9.2005, 19:35
создай файл с разрешением as или сделай во Flash - new AS file (или как-то так)... потом сохрани его с именем myBtn.as в той-же папке, где fla. Во fla ыбери символ в библиотеке, правой кнопкой нажми на Linkage, выстави - export for action script. Там будет AS2 Class (или как-то так, не помню, а рядом Flash-а нету). Там пропиши myBtn. Усё.

Автор: Berliner 30.9.2005, 15:04
Цитата
создай файл с разрешением as или сделай во Flash - new AS file (или как-то так)... потом сохрани его с именем myBtn.as
Что-то не нахожу где это а поподробнее можно?
Добавлено @ 15:04
и что такое as Файл

Автор: Верлиока 30.9.2005, 20:08
Berliner, прежде чем разбираться, как это работает, хорошо бы ответить на вопрос ЗАЧЕМ тебе это нужно? :) и нужно ли.

кнопка или мувиклип, которые ты в редакторе кинешь на сцену для скрипта являются объектами. над этими объектами можно совершать разные действия. например перекрасить. :)

1. создал в редакторе кнопку (символ в библиотеке)
2. положил экземпляр этого символа на сцену
3. задал этому экземпляру имя в свойствах
4. скриптом перекрасил этот экземпляр

допустим на сцене лежит кнопка с именем btn.
перекрасить её в красный цвет можно так:
Код

var clr = new Color(btn);
clr.setRGB(0xFF0000);


...и это уже вполне себе ООП. :) создали объект класса Color, вызывали его метод...
ну да, не весь код инкапсулирован в классы... ну так оно и не надо в данном случае. :))

Автор: Berliner 1.10.2005, 13:34
Спасибо буду разбираться

Цитата
3. задал этому экземпляру имя в свойствах


А где это я использую Falsh MX где это сделать в редакторе? Подскажи плиз


Автор: Верлиока 1.10.2005, 13:43
окшко "свойства".
либо открыть из верхнего меню редактора "windows"
либо тыкнуть в экземпляр правой кнопкой мыши и выбрать "properties"
либо тыкнуть в экземпляр левой кнопкой мыши и нажать ctrl+f3

Автор: Berliner 5.10.2005, 14:14
вот правой клавишей нажал вілезли свойства а где название я не знаю там токо можно вібирать Button, Movie Clip, Graphic но ведь это не имена где там имя прописать не знаю а ты скин шот не можешь выслать где имя объекта прописать?

Автор: Berliner 5.10.2005, 14:42
помогите -я не прикалываюсь мне самогое главное в этой среде разобраться а програмировать я умею smile

спасиб

Автор: Верлиока 5.10.2005, 18:26
Цитата(Berliner @ 5.10.2005, 14:42)
помогите -я не прикалываюсь мне самогое главное в этой среде разобраться а програмировать я умею  :D

спасиб

сударь, вам не ООП во флэше изучить надо, а хотя бы уроки. туториал.

если ты "умеешь программировать", могу сказать что экшнскрипт построен на спецификации http://www.ecma-international.org/publications/standards/Ecma-262.htm, как и яваскрипт, и джэй скрипт и еще много чего. соответственно ООП там не такое взрослое как в Си++ или Джаве, но зато удобно и допускает массу вольностей при написании кода.

для того чтобы назначить имя экземпляру, нужно вписать идентификатор в окошко сразу под комбо боксом, где можно выбрать "Button, Movie Clip, Graphic". там в качестве подсказки выводится надпись "<instance name>" если никакого имени еще не задано. честно говоря уже слабо помню интерфейс шестого флэша, поэтому указания могут быть чуть-чуть неточными.

Автор: Berliner 11.10.2005, 19:58
Вставил твой код и вот ошибки - хотя и задал в свойствах имя объекта(спасибо за подсказку)

Может надо реакцию на какое-то событие? Типа реакцию на нажатие кнопки?
Ошибка почему? smile
Код

Scene=Scene 1, Layer=Layer 1, Frame=1: Line 4: Statement must appear within on handler
     var clr = new Color(b1);

Scene=Scene 1, Layer=Layer 1, Frame=1: Line 5: Statement must appear within on handler
     clr.setRGB(0xFF0000




Автор: AlDev 12.10.2005, 02:52
а bl у тебя что такое?

Автор: Guest 12.10.2005, 14:24
Название обїекта(кнопки) b1

Автор: AntonioBanderaz 19.10.2005, 13:48
Да потому что это только для таймлайна, а так это надо запихивать в конструкции типа on(rollOver) { ]

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)