Форум 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)
-   -   Проблема с кодом (http://www.flasher.ru/forum/showthread.php?t=85674)

undeddy 27.09.2006 21:13

Проблема с кодом
 
Ника кне могу понять почему не работает должным образом следующее.
Код:

var txt1 = "ТЕКСТ";
////////////////////////////////
function newTextBlock(str, txt, x, y, width, height, fr, movie) {
        this.createEmptyMovieClip(movie, 10);
        var format1 = new TextFormat();
        var format2 = new TextFormat();
        format1.bold = true;
        format1.color = 0x009933;
        format1.size = 21;
        format1.font = "Courier New";
        format2.bold = true;
        format2.color = 0x525252;
        format2.size = 21;
        format2.font = "Courier New";
        ////////////////////////////////////////////
        eval(movie).createTextField(str, this.getNextHighestDepth(), x, y, width, height);       
            eval(str).setNewTextFormat(eval(fr));
        eval(str).border = false;
        eval(str).multiline = true;
        eval(str).wordWrap = true;
        eval(str).mouseWheelEnabled = false;
        eval(str).selectable = false;
        eval(str).text = txt;
}
newTextBlock("block1", txt1, 161.4, 342.3, 712, 84, "format1", "mov");

Если в выделенной строке вместо указателя на имя мувиклпа вставить указатель например this., то тектст появляется, а так нет. В чем дело?

iNils 27.09.2006 21:22

Код:

var txt1 = "ТЕКСТ";
////////////////////////////////
function newTextBlock (str, txt, x, y, width, height, fr, movie) {
        var mc = this.createEmptyMovieClip (movie, 10);
        var format1 = new TextFormat ();
        var format2 = new TextFormat ();
        format1.bold = true;
        format1.color = 0x009933;
        format1.size = 21;
        format1.font = "Courier New";
        format2.bold = true;
        format2.color = 0x525252;
        format2.size = 21;
        format2.font = "Courier New";
        ////////////////////////////////////////////
        var txtF = mc.createTextField (str, this.getNextHighestDepth (), x, y, width, height);
        txtF.setNewTextFormat (eval (fr));
        txtF.border = false;
        txtF.multiline = true;
        txtF.wordWrap = true;
        txtF.mouseWheelEnabled = false;
        txtF.selectable = false;
        txtF.text = txt;
}
newTextBlock ("block1", txt1, 161.4, 342.3, 712, 84, "format1", "mov");

Только я не понял что у вас там с форматом текста творится.

undeddy 28.09.2006 21:22

Все равно не работает.

iNils 28.09.2006 23:02

Код работает.

wvxvw 29.09.2006 06:35

Цитата:

var mc = this.createEmptyMovieClip (movie, 10);
Это смотря где вызвать... trace(typeof(this) == "movieclip");

undeddy 29.09.2006 19:43

Текст не появляется и все тут. Странно, что trace(typeof txtF) - undefined...

wvxvw 30.09.2006 10:49

typeof вроде как функция... ну или если не функция, то работает как функция, т.е. typeof(object), а не typeof object
И еще, x, y, width, height - это все зарезервированые слова, лучше так переменные не называть...
и еще... попробуй явно при создании переменной задать ее как TextField i.e. var txtF:TextField. Так по крайней мере сможешь выяснить подробнее в чем проблема - не была создана переменная, или не были присвоены какие-то параметры объекту в переменной.
Кроме того... по идее, eval(fr) должно вернуть Стринг, а не ТекстФормат, попробуй лучше this["fr"], или arguments[6]

undeddy 30.09.2006 13:06

Переменная txtF почему-то вообще не инициализируется.

lowka 30.09.2006 15:51

Если версия вашего флэша ниже восьмерки, то:
Код:

MovieClip.createTextField(instanceName:String, depth:Number, x:Number, y:Number, width:Number, height:Number) : Void
В восьмерке уже TextField возвращает.

KUZEN 30.09.2006 15:56

TextFormat нужно применять после того как засуните текст в тестовое поле


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

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