Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Изменение Text-ового поля (http://www.flasher.ru/forum/showthread.php?t=127441)

l576 14.07.2009 09:46

Изменение Text-ового поля
 
Вложений: 1
Здр.
Предположим, существует файл some.fla
вот:

http://www.flasher.ru/forum/attachme...1&d=1247546709

1. Text Input (all text)
2. Text Input (www.something.com)
3. Button (send) <a href=""></a>

Как сделать, чтобы при нажатии на Button(3),
ссылка из text-ового поля(2),
добавлялась в text-ового поле(1) с тегом <a href=""></a>

Жду ответа
С ув. l576

dimarik 14.07.2009 11:56

пр.

Код AS1/AS2:

var app:                Object = this;
 
var outputTextField:        TextField;
var inputTextField:        TextField;
 
this.button.onRelease = function():Void {
        app.outputTextField.text = '<a href="' + app.inputTextField.text + '"></a>';
};


l576 14.07.2009 13:06

Большое спасибо! dimarik

Однако,

1. При добавлении весь текст, который там(1. Text Input (all text)) находится, уходит и остается только ссылка. //текст (вот ссылка) уходит//. Как сделать чтобы ссылка добавлялась к остальному тексту.
2. При следующем добавлении уже другой ссылки она не добавляется, а просто изменяется прошлая. Как сделать, чтобы можно было бы добавлять больше одной ссылки.


Спустя время (1 мин)
Проблему решил немного подредактировав
Код AS1/AS2:

var app:                Object = this;
 
var outputTextField:        TextField;
var inputTextField:        TextField;
 
this.button.onRelease = function():Void {
        app.outputTextField.text = app.outputTextField.text + '<a href="' + app.inputTextField.text + '"></a>';
};


dimarik 14.07.2009 13:45

Код AS1/AS2:

app.outputTextField.text += '<a href="' + app.inputTextField.text + '"></a>';


l576 14.07.2009 13:47

Спасибо
Последний 3 вопрос
Если я добавляю ссылку, то она всегда добавляется в конце всего текста(или др. ссылок)
Так как и
1. Text Input (all text)
2. Text Input (www.something.com)
это Text Input, то я могу ставить курсор в любой области текста 1. Text Input (all text), однако добавляется ссылка все равно в конце.
Как сделать так чтобы ссылка добавляласть там где стоит текстовый курсор.

dimarik 14.07.2009 14:09

Код AS1/AS2:

var app:                Object = this;
 
var outputTextField:        TextField;
var inputTextField:        TextField;
 
this.button.onRelease = function():Void {
        var result:        String;
        var inline:        String = '<a href="' + app.inputTextField.text + '"></a>';
 
        if ( Selection.getFocus() == app.outputTextField ) {
                var index:Number = Selection.getCaretIndex();
                result =
                                app.outputTextField.text.slice(0, index) +
                                inline +
                                app.outputTextField.text.slice(index + 1);
        } else {
                result = app.outputTextField.text + inline;
        }
 
        app.outputTextField.text = result;       
};


l576 14.07.2009 14:23

Что-то все равно, в конце только добавляет
Вот some.fla&some.swf //f8 as2
see swf
some.fla
some.swf

dimarik 14.07.2009 15:31

Я не учел, что фокус перемещается на кнопку. Нужно сохранять caretIndex.

Код AS1/AS2:

var app:                                Object = this;
 
var outputTextField:        TextField;
var inputTextField:                TextField;
var caretIndex:                        Number = -1;
 
Key.addListener(this);
 
this.button.onRelease = function():Void {
        var result:        String;
        var inline:        String = '<a href="' + app.inputTextField.text + '"></a>';
 
        if ( app.caretIndex > -1 ) {
                result =
                                app.outputTextField.text.slice(0, app.caretIndex) +
                                inline +
                                app.outputTextField.text.slice(app.caretIndex + 1);
        } else {
                result = app.outputTextField.text + inline;
        }
 
        app.outputTextField.text = result;       
};
 
function storeCaretIndex():Void {
        if ( Selection.getFocus() !=  String(this.outputTextField) ) return;
        this.caretIndex = Selection.getCaretIndex();
        trace(this.caretIndex);
}
 
//-----------------------------------
//
// Events handlers
//
//-----------------------------------
function onKeyUp():Void {
        this.storeCaretIndex();
}
 
function onMouseDown():Void {
        this.onEnterFrame = this.enterFrameHandler;
}
 
function enterFrameHandler():Void {
        this.onEnterFrame = null;
        this.storeCaretIndex();
}


l576 14.07.2009 15:42

КрасавчеГ nice work

Добавлено через 2 часа 58 минут
Простите за упрямство, а если нужно сделать, так:

[IMG]http://img194.**************/img194/8091/50754297.gif[/IMG]

т. е. если, 2. Text Input, уже не нужен, текс(ссылки) добавляются
непосредственно в 1. Text Input (all text) //ко всему(основному) тексту.

Спасибо.

dimarik 14.07.2009 18:47

Посмотрите, у класса Selection есть методы getBeginIndex() и getEndIndex().


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

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