![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Banned
[+4 25.09.09]
[+1 12.11.09] [+4 12.12.09] Регистрация: Sep 2009
Сообщений: 231
|
public class Controller { private var obj:Object; private var textField:TextField; private var propName:String; public function Controller(textField:TextField, obj:Object, propName:String) { this.textField = textField; this.obj = obj; this.propName = propName; update(true); textField.addEventListener(Event.CHANGE, onTFChange); } private function onTFChange(e:Event) { update(); } public function update(back:Boolean = false) { if (back) { textField.text = obj[propName]; } else { obj[propName] = textField.text; } } } для объекта: Последний раз редактировалось bicubic_bublic; 08.11.2009 в 21:59. |
|
|||||
|
Начните с этого:
public class TFWithPromt extends TextField{ public var prompt:String; public function TFWithPromt (promptText:String){ super(); this.prompt = promptText; this.addEventListener(MouseEvent.ROLL_OVER, showPrompt); } private function showPrompt(evt:Event){ // показываем подсказку } } public class MyTF extends TFWithPromt { public static const DEFAULT_TEXT_1:String="поле 1"; public static const DEFAULT_TEXT_2:String="поле 2"; public static const DEFAULT_TEXT_3:String="поле 3"; public function MyTF (type:Number = 0){ super(); switch(type): case 0: this.text = DEFAULT_TEXT_1; break; } }
__________________
...вселенская грусть |
|
|||||
|
gloomyBrain: Я понимаю что так можно, но вам не кажется ли, что несколько процедурно-ориентированно? (вопрос риторический) Где-то в дебрях свей библии Страуструпп критиковал такой метод.
2bicubic_bublic: ну я и сделал так, примерно. * * * Но все же хотелось не уклоняться от темы. Вариантов решения можно наплодить много, я это понимаю. вопрос топика был: возможно ли передать ссылку на сеттер? Уже совершенно не важно каким другим путем можно пойти. Вопрос ПРИНЦИПИАЛЬНЫЙ, ради интереса, и чтобы знать в будущем. |
|
|||||
|
Banned
[+4 25.09.09]
[+1 12.11.09] [+4 12.12.09] Регистрация: Sep 2009
Сообщений: 231
|
Цитата:
и, видимо, это действительно так: нельзя получить ссылку на функцию сеттер-геттер |
|
|||||
|
Регистрация: May 2009
Сообщений: 220
|
package { import flash.display.Sprite; public class Main extends Sprite { private var _testGetSet:uint; private var directLink:Function; function Main() { testGetSet = 20; directLink(30); trace(_testGetSet); } public function get testGetSet():uint { return _testGetSet; } public function set testGetSet(value:uint):void { _testGetSet = value; if(!directLink) directLink = arguments.callee; } } } |
|
|||||
|
Banned
[+4 25.09.09]
[+1 12.11.09] [+4 12.12.09] Регистрация: Sep 2009
Сообщений: 231
|
Проще тогда сделать будет таким образом:
|
|
|||||
|
Регистрация: May 2009
Сообщений: 220
|
bicubic_bublic, я дал ответ в строгости с сабжем + потому, что:
|
![]() |
![]() |
Часовой пояс GMT +4, время: 07:54. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|