Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«Macromedia Flash Professional 8. Π“Ρ€Π°Ρ„ΠΈΠΊΠ° ΠΈ анимация». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 96

Автор Π’. Π”Ρ€ΠΎΠ½ΠΎΠ²

Π’ случаС тСкстового Π±Π»ΠΎΠΊΠ° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Ρ‡ΠΈΠΊΠ° ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½Ρ‹ события onchanged ΠΈ onScroller. (Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Ρ‡ΠΈΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ свойства onchanged ΠΈ onScroller.) Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ сцСнария, ΡΠΎΠ·Π΄Π°ΡŽΡ‰Π΅Π³ΠΎ Ρ‚Π°ΠΊΠΎΠΉ ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Ρ‡ΠΈΠΊ (ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ наТатия клавиш fOnChanged ΠΈ fOnScroller ΡƒΠΆΠ΅ описаны):

myListener = new Object ();

myListener.onchanged = fOnChanged;

myListener.onScroller = fOnScroller;

Π˜Π·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ object Π½Π΅ содСрТит свойств onchanged ΠΈ onScroller. Они Π±ΡƒΠ΄ΡƒΡ‚ созданы Π² экзСмплярС этого ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° myListener, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΡ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‡Ρ‚ΠΎ создали, ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ "ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‚ΡŒ" Ρ‚ΠΎΠ»ΡŒΠΊΠΎ этому экзСмпляру.

Для привязки ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Ρ‡ΠΈΠΊΠ° ΠΊ тСкстовому Π±Π»ΠΎΠΊΡƒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ addListener ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Text Field. Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ СдинствСнный ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ β€” ссылку Π½Π° ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Ρ‡ΠΈΠΊ.

txtName.addListener(myListener);

Π­Ρ‚ΠΎ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ привязываСт созданный Π½Π°ΠΌΠΈ ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Ρ‡ΠΈΠΊ ΠΊ полю Π²Π²ΠΎΠ΄Π° txtName.

Один ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Ρ‡ΠΈΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠ²ΡΠ·Π°Ρ‚ΡŒ сразу ΠΊ нСскольким тСкстовым Π±Π»ΠΎΠΊΠ°ΠΌ:

txtName2.addListener(myListener);

txtFamily.addListener(myListener);

Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ события, происходящиС Π² Ρ€Π°Π·Π½Ρ‹Ρ… тСкстовых Π±Π»ΠΎΠΊΠ°Ρ…, ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ-ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ². Иногда это Π±Ρ‹Π²Π°Π΅Ρ‚ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, особСнно Ссли ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ, привязанныС ΠΊ Ρ€Π°Π·Π½Ρ‹ΠΌ тСкстовым Π±Π»ΠΎΠΊΠ°ΠΌ, Π΄Π΅Π»Π°ΡŽΡ‚ ΠΎΠ΄Π½ΠΎ ΠΈ Ρ‚ΠΎ ΠΆΠ΅.

Π§Ρ‚ΠΎΠ±Ρ‹ "ΠΎΡ‚Π²ΡΠ·Π°Ρ‚ΡŒ" ΠΎΡ‚ тСкстового Π±Π»ΠΎΠΊΠ° Π½Π΅Π½ΡƒΠΆΠ½Ρ‹ΠΉ Π±ΠΎΠ»Π΅Π΅ ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Ρ‡ΠΈΠΊ, Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ removeListener. Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π² качСствС СдинствСнного ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ ссылку Π½Π° ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Ρ‡ΠΈΠΊ.

txtName.removeListener(myListener);

Π’Π΅ΠΏΠ΅Ρ€ΡŒ останСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ совсСм ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Π½Π΅Π½ΡƒΠΆΠ½Ρ‹ΠΉ ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Ρ‡ΠΈΠΊ:

delete myListener;

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ тСкстовых Π±Π»ΠΎΠΊΠΎΠ² ΠΈΠ· сцСнариСв

Flash Ρ‚Π°ΠΊΠΆΠ΅ позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈ ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ тСкстовыС Π±Π»ΠΎΠΊΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ особых сцСнариСв. БСйчас ΠΌΡ‹ выясним, ΠΊΠ°ΠΊ это дСлаСтся.

Для создания поля Π²Π²ΠΎΠ΄Π° ΠΈΠ»ΠΈ динамичСского тСкстового Π±Π»ΠΎΠΊΠ° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ createTextField ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° movieClip. Π€ΠΎΡ€ΠΌΠ°Ρ‚ Π΅Π³ΠΎ Π²Ρ‹Π·ΠΎΠ²Π° Ρ‚Π°ΠΊΠΎΠ²:

<Клип>.createTextField(<Имя>, <ΠŸΠΎΡ€ΡΠ΄ΠΎΠΊ пСрСкрытия>, <Π₯>, <Y>,

<Π¨ΠΈΡ€ΠΈΠ½Π°>, <Высота>);

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Π·Π°Π΄Π°Π΅Ρ‚ имя создаваСмого поля Π²Π²ΠΎΠ΄Π° ΠΈΠ»ΠΈ динамичСского тСкстового Π±Π»ΠΎΠΊΠ° Π² строковом Π²ΠΈΠ΄Π΅, Π° Π²Ρ‚ΠΎΡ€ΠΎΠΉ β€” Π΅Π³ΠΎ порядок пСрСкрытия. Π’Ρ€Π΅Ρ‚ΠΈΠΉ ΠΈ Ρ‡Π΅Ρ‚Π²Π΅Ρ€Ρ‚Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Π·Π°Π΄Π°ΡŽΡ‚ соотвСтствСнно Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½ΡƒΡŽ ΠΈ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ Π»Π΅Π²ΠΎΠ³ΠΎ ΡƒΠ³Π»Π° создаваСмого тСкстового Π±Π»ΠΎΠΊΠ° ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΊΠ»ΠΈΠΏΠ°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΠ½ создаСтся. ПослСдниС Π΄Π²Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° Π·Π°Π΄Π°ΡŽΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ β€” ΡˆΠΈΡ€ΠΈΠ½Ρƒ ΠΈ высоту β€” тСкстового Π±Π»ΠΎΠΊΠ°. И ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹, ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ Π·Π°Π΄Π°ΡŽΡ‚ΡΡ Π² пиксСлах.

НуТно ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ этого ΠΌΠ΅Ρ‚ΠΎΠ΄Π° создаСтся динамичСский тСкстовый Π±Π»ΠΎΠΊ, Ρ‚. Π΅. свойство type ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ экзСмпляра ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° TextField сразу ΠΆΠ΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ "dynamic". Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ этот экзСмпляр Π² ΠΏΠΎΠ»Π΅ Π²Π²ΠΎΠ΄Π°, Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ свойству type строку "input". НапримСр:

_root.createTextField("txtName", 0, 100, 100, 200, 50);

_root.txtName.type = "input";

_root.txtName.variable = "Name";

Π­Ρ‚ΠΎΡ‚ сцСнарий создаСт ΠΏΠΎΠ»Π΅ Π²Π²ΠΎΠ΄Π° txtName ΠΈ привязываСт Π΅Π³ΠΎ ΠΊ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Name.

Для удалСния созданного с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° createTextField тСкстового Π±Π»ΠΎΠΊΠ° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ removeTextField ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° TextField:

_root.txtName.removeTextField();

Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅!

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ дСйствия ΠΈΠ»ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° removeText Field ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅ тСкстовыС Π±Π»ΠΎΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ созданы ΠΈΠ· сцСнариСв. ВСкстовыС Π±Π»ΠΎΠΊΠΈ, созданныС Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ, Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΡƒΠ΄Π°Π»Π΅Π½Ρ‹ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ.

ИспользованиС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Selection

Flash Ρ‚Π°ΠΊΠΆΠ΅ прСдоставляСт Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ управлСния тСкстовым курсором ΠΈ Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ тСкста Π² тСкстовых Π±Π»ΠΎΠΊΠ°Ρ…. Для этого ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ selection, СдинствСнный экзСмпляр ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ selection создаСтся самим Flash.

ΠœΠ΅Ρ‚ΠΎΠ΄ get Focus этого ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π² строковом Π²ΠΈΠ΄Π΅ имя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, привязанной ΠΊ тСкстовому Π±Π»ΠΎΠΊΡƒ, ΠΈΠΌΠ΅ΡŽΡ‰Π΅ΠΌΡƒ Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ фокус Π²Π²ΠΎΠ΄Π°. Если ΠΊ тСкстовому Π±Π»ΠΎΠΊΡƒ Π½Π΅ привязана пСрСмСнная ΠΈΠ»ΠΈ Ссли фокус Π²Π²ΠΎΠ΄Π° ΠΈΠΌΠ΅Π΅Ρ‚ ΠΊΠ½ΠΎΠΏΠΊΠ° ΠΈΠ»ΠΈ ΠΊΠ»ΠΈΠΏ, Ρ‚ΠΎ возвращаСтся ΠΏΡƒΡ‚ΡŒ (Ρ‚Π°ΠΊΠΆΠ΅ Π² строковом Π²ΠΈΠ΄Π΅). Если Π½ΠΈ ΠΎΠ΄ΠΈΠ½ тСкстовый Π±Π»ΠΎΠΊ, Π½ΠΈ ΠΎΠ΄Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ° ΠΈ Π½ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΊΠ»ΠΈΠΏ Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ фокуса, возвращаСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ null.

Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄Π°Ρ‚ΡŒ ΠΊΠ°ΠΊΠΎΠΌΡƒ-Π»ΠΈΠ±ΠΎ тСкстовому Π±Π»ΠΎΠΊΡƒ (Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠ΅ ΠΈΠ»ΠΈ ΠΊΠ»ΠΈΠΏΡƒ) фокус Π²Π²ΠΎΠ΄Π°, Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ set Focus. Π’ качСствС СдинствСнного ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° этому ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ пСрСдаСтся ΠΏΡƒΡ‚ΡŒ Π² строковом Π²ΠΈΠ΄Π΅:

Selection.setFocus("_root.txtName");

Selection.setFocus("_root.btnOK");

Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠ½ΡΡ‚ΡŒ фокус Π²Π²ΠΎΠ΄Π° со всСх элСмСнтов управлСния, достаточно ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ setFocus Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ null.

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° selection ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ тСкстового курсора Π² ΠΏΠΎΠ»Π΅ Π²Π²ΠΎΠ΄Π°. Для этого достаточно Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ Π½Π΅ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰ΠΈΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄ get Caret index, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Π΅Ρ€Π½Π΅Ρ‚ Π½Π°ΠΌ Π½ΠΎΠΌΠ΅Ρ€ символа, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ стоит курсор. (НС стоит Π·Π°Π±Ρ‹Π²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ нумСрация символов начинаСтся с нуля.) Если ΠΆΠ΅ Π½ΠΈ ΠΎΠ΄Π½ΠΎ ΠΏΠΎΠ»Π΅ Π²Π²ΠΎΠ΄Π° Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ фокуса, возвращаСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ β€” 1.

ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ getBeginindex ΠΈ getEndindex Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ Π½ΠΎΠΌΠ΅Ρ€Π° соотвСтствСнно Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΈ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎΠ³ΠΎ символа Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π² тСкстовом Π±Π»ΠΎΠΊΠ΅ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π° тСкста. Если Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΎ, Ρ‚Π°ΠΊΠΆΠ΅ возвращаСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ β€” 1.

МоТно Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ Π½ΡƒΠΆΠ½Ρ‹ΠΉ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ тСкста, воспользовавшись ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ setSelection. ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ этого ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Ρ€Π°Π²Π½ΠΎΠ΅ Π½ΠΎΠΌΠ΅Ρ€Ρƒ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ символа выдСляСмого Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π°, Π° Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ β€” Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Ρ€Π°Π²Π½ΠΎΠ΅ Π½ΠΎΠΌΠ΅Ρ€Ρƒ послСднСго символа. Π’ΠΎΡ‚ Ρ‚Π°ΠΊ:

Selection.setSelection(10, 30);

Π§Ρ‚ΠΎΠ±Ρ‹ просто ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ тСкстовый курсор Π² Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΡƒΡŽ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ, Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ setSelection Π½ΠΎΠΌΠ΅Ρ€ Π½ΡƒΠΆΠ½ΠΎΠ³ΠΎ символа ΠΈ Π² ΠΏΠ΅Ρ€Π²ΠΎΠΌ, ΠΈ Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π΅:

Selection.setSelection(10, 10);

ΠžΠ±ΡŠΠ΅ΠΊΡ‚ selection ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΎΠ΄Π½ΠΎ-СдинствСнноС событиС onSetFocus, Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‰Π΅Π΅ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠΈ фокуса Π²Π²ΠΎΠ΄Π°. ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° этого события Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Ρ‡ΠΈΠΊΠ°. НапримСр:

myListener = new Object ();

myListener.onSetFocus = fOnSetFocus;

Selection.addListener(myListener);

Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ создания ΠΈ привязки ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Ρ‡ΠΈΠΊΠ° ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ selection. Ѐункция fOnsetFocus выполняСт собствСнно ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ события onset Focus; ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ этой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π±Ρ‹Π»ΠΎ ΠΎΠΏΡƒΡ‰Π΅Π½ΠΎ.

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π°ΠΆΠ°Ρ‚ΠΈΠΉ клавиш ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹

Для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ наТатия клавиш ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹ слуТит ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Key. Π•Π³ΠΎ СдинствСнный экзСмпляр, Ρ‚Π°ΠΊΠΆΠ΅ носящий имя Key, создаСтся самим Flash.

Бвойства ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Key

Π”Π²Π° Π²Π°ΠΆΠ½Π΅ΠΉΡˆΠΈΡ… ΠΌΠ΅Ρ‚ΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ понадобятся Π½Π°ΠΌ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΉ клавиш, β€” это ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ getAscii ΠΈ getcode. ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΊΠΎΠ΄ символа ASCII, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ присвоСн Π½Π°ΠΆΠ°Ρ‚ΠΎΠΉ клавишС. Π’Ρ‚ΠΎΡ€ΠΎΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ Π½Π°ΠΆΠ°Ρ‚ΠΎΠΉ клавиши β€” Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹ΠΉ ΠΊΠΎΠ΄, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΡƒΠ·Π½Π°Ρ‚ΡŒ, какая клавиша Π½Π° ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π΅ Π±Ρ‹Π»Π° Π½Π°ΠΆΠ°Ρ‚Π°. Оба эти ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π½Π΅ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ².

Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π²Ρ‹Π·ΠΎΠ²Π° этих ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²:

codel = Key.getAscii(); code2 = Key.getCode();

Код символа ASCII зависит ΠΎΡ‚ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ. ΠšΠΎΠ΄Ρ‹ символов ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ Windows 1251 ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ Π² ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ справкС Flash; Ρ‚Π°ΠΌ ΠΆΠ΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ ΠΈ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠ΄Ρ‹ клавиш.

Π•Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Key β€” ΠΌΠ΅Ρ‚ΠΎΠ΄ isDown. Он ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ СдинствСнный ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ β€” Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ клавиши β€” ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ true, Ссли эта клавиша Π½Π°ΠΆΠ°Ρ‚Π°. НапримСр:

if (Key.isDown(Key.ENTER)) {. }

ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ΅ Π²Ρ‹ΡˆΠ΅ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ провСряСт, Π±Ρ‹Π»Π° Π»ΠΈ Π½Π°ΠΆΠ°Ρ‚Π° клавиша <Enter>.

ΠœΠ΅Ρ‚ΠΎΠ΄ isToggied Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ true, Ссли Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π΅Π³ΠΎ Π²Ρ‹Π·ΠΎΠ²Π° Π±Ρ‹Π»Π° Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π° ΠΎΠ΄Π½Π° ΠΈΠ· клавиш-ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»Π΅ΠΉ: <NumLock> ΠΈΠ»ΠΈ <CapsLock>. Он ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ СдинствСнный ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ β€” числовоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 20 (Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ клавиши <CapsLock>) ΠΈΠ»ΠΈ 144 (Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ клавиши <NumLock>).

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π²Ρ‹Π·ΠΎΠ²Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π° isToggied:

if (Key.isToggied(20)) { s = s.toLowerCase; }

ΠšΡ€ΠΎΠΌΠ΅ Π²Ρ‹ΡˆΠ΅ΠΎΠΏΠΈΡΠ°Π½Π½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Key ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ряд свойств, доступных Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для чтСния ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰ΠΈΡ… значСния Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠΎΠ΄ΠΎΠ² Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… слуТСбных клавиш ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹. ВсС эти свойства ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ Π² Ρ‚Π°Π±Π». 19.14.

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π°ΠΆΠ°Ρ‚ΠΈΠΉ клавиш Π² ΠΊΠ»ΠΈΠΏΠ°Ρ…

А Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΆΠ΅ собствСнно выполняСтся ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π°ΠΆΠ°Ρ‚ΠΈΠΉ клавиш ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹. Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π΅Π΅ ΠΌΠΎΠΆΠ½ΠΎ двумя способами, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ ΠΈ рассмотрим Π² этом Ρ€Π°Π·Π΄Π΅Π»Π΅.

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π°ΠΆΠ°Ρ‚ΠΈΠΉ клавиш Π² ΠΊΠ»ΠΈΠΏΠ°Ρ…

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ β€” Π±ΠΎΠ»Π΅Π΅ простой β€” способ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΉ клавиш β€” Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² привязкС ΠΊ ΠΊΠ»ΠΈΠΏΡƒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π΅Π°Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° наТатия, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° события keyDown, Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‰Π΅Π³ΠΎ ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ клавиши. ΠœΡ‹ рассмотрим созданиС этого ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅.