Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Аргумент TextField'а (http://www.flasher.ru/forum/showthread.php?t=201636)

Fogflasher 19.06.2013 11:37

Аргумент TextField'а
 
Монгол шуудан, кодуны.

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

Код AS3:

TextField(e.target).backgroundColor = 0xFF00FF00;

И вот этот финт, с передачей аргумента текстовому полю, мне непонятен...
(тем более с передачей чего-то ужасного, связанного с событиями).

То есть, я вообще никогда не подозревал, что TextField'у можно какой-то аргумент впарить...
Ну хорошо, допустим можно, но как это работает, и что это означает?
Передается ли всегда один аргумент (и должен ли он всегда быть связан с событийными делами), или можно передать их несколько?

Просмотрел навскидку здесь, но, в явном виде, про передачу аргументов ничего не видно...

КорДум 19.06.2013 11:41

Это не конструктор. Это называется конвертацией. Конвертируется InteractiveObject и TextField. По сути то же самое можно написать и с приведением типов:
Код AS3:

(e.target as TextField).backgroundColor = 0xFF00FF00;


Fogflasher 19.06.2013 12:18

КорДум, аа, вот оно что.
Я не знаком с конвертацией, но теперь хотя бы буду знать про что читать, спасибо.

Кстати, о конструкторах... Выходит, вот для таких системных объектов, передавать аргументы в конструктор вообще нельзя?
То есть, получается, это будет считаться конвертацией автоматически...

КорДум 19.06.2013 12:22

Вызов конструктора обязательно сопровождается словом new. Если new нет (как в данном случае), то это конвертация в определенный тип (которая может вернуть экзепшен).

Цитата:

Выходит, вот для таких системных объектов, передавать аргументы в конструктор вообще нельзя?
Не понял вопроса. Конструктор TextField не поддерживает никаких параметров в себе. А перегрузки (тем более частичной) в AS3 нет. Если нужно, Вы можете отнаследоваться своим классом от TextField и сделать какие угодно параметры уже в его конструкторе.

MikroAcse 19.06.2013 12:30

Код AS3:

new String("hello"); //создаешь строку с текстом "hello"
String(1234); //конвертируешь число в строку "1234"


Fogflasher 19.06.2013 13:57

Да, с typecasting'ом приходилось встречатся... а вот теперь понятно, что это как-бы он и есть.
Просто случай для нуба менее очевидный.


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

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