Форум 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 19:41

Посидел, много error's набрал и понял что пока мозгов моиз не хватает,
поиск много чего дает(кому-то), но изменить, пока тоже не получается.
Вся надежда на тебя !-) Люди, нужна поддержка...


Как же надо изменить КОД, на что-то типа этого?
(Помогите, я только начал изучать AS (10 дней назад, сразу как закрыл сессию и перешел на 2 курс))
Код AS1/AS2:

...
 
var outputTextField:        TextField;
var caretIndex:        Number = -1;
        a=Selection.getBeginIndex();
        b=Selection.getEndIndex();
 
 
Key.addListener(this);
 
this.button.onRelease = function():Void {
        var result:        String;
        var inline:        String = '<a href="' + tf_txt.getTextFormat(a,b) + '"></a>';
 
...


codfelix 15.07.2009 06:43

Присоединяюсь к вопросу.
Кто-нибудь может помочь.

KiL33 15.07.2009 08:40

Можешь так попробовать.
Код AS1/AS2:

var outputTextField:TextField;
var startIndex:Number;
var endIndex:Number;
var txt:String;
btn.onPress = rep_select;
function rep_select():Void {
        startIndex = Selection.getBeginIndex();
        endIndex = Selection.getEndIndex();
        txt = outputTextField.text.substring(startIndex, endIndex);
        trace(txt);
        outputTextField.replaceText(startIndex,endIndex,'<a href="'+txt+'"></a>');
}


codfelix 15.07.2009 12:14

// Как должен выглядеть КОД полностью, так не срабатывает,
Код AS1/AS2:

var caretIndex:                        Number = -1;
var outputTextField:TextField;
var startIndex:Number;
var endIndex:Number;
var result:String;
 
 
Key.addListener(this);
 
this.btn.onRelease = function():Void {
        startIndex = Selection.getBeginIndex();
        endIndex = Selection.getEndIndex();
        txt = outputTextField.text.substring(startIndex, endIndex);       
};
 
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();
}

// КОД dimarik-а работает, как его изменить.
Код 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();
}


dimarik 15.07.2009 12:25

кат-то так можно

Код AS1/AS2:

var app:                                Object = this;
var pattern:                        String = '<a href="{s}"></a>';
 
var outputTextField:        TextField;
 
var beginIndex:                        Number = -1;
var endIndex:                        Number = -1;
 
 
this.button.onRelease = function():Void {
        if (app.beginIndex == -1 ||
            app.endIndex <= app.beginIndex
        ) return;
 
        Selection.setFocus( String(app.outputTextField) );
    Selection.setSelection(app.beginIndex, app.endIndex);
 
        var inline:        String = app.substitute
                        (
                                        pattern,
                                        app.outputTextField.text.slice(app.beginIndex, app.endIndex)
                        );
 
        app.outputTextField.replaceSel(inline);
};
 
this.outputTextField.onMouseUp =
this.outputTextField.onKeyUp = function():Void {
        app.beginIndex = Selection.getBeginIndex();
        app.endIndex  = Selection.getEndIndex();
};
 
this.outputTextField.onSetFocus = function():Void {
        Key.addListener(this);
        Mouse.addListener(this);
};
 
this.outputTextField.onKillFocus = function():Void {
        Key.removeListener(this);
        Mouse.removeListener(this);
};
 
function substitute():String {
        var temp:        Array = arguments[0].split('{s}');
        var i:                Number = temp.length;
        if (i-- > 1) while (i--) temp[i] += arguments[i + 1];
        return temp.join('');
}



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

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