PDA

Просмотр полной версии : масштабирование.


AlexSol
08.08.2006, 16:31
имеется двумерный массив элементами которого могут быть буквы, ноль или '!'. на его основе строятся текстовые поля:
var clip:MovieClip = _root.createEmptyMovieClip('cross_mc', _root.getNextHighestDepth());
for (var j = 0; j<21; j++) {
for (i=0; i<20; i++) {
var lit:String = cross_arr[j][i];
if (lit != '!' && lit != '0') {
var tt:TextField = clip.createTextField('tt'+i+'_'+j, clip.getNextHighestDepth(), 20*i, 20*j, 20, 20);
tt.border = true;
//
tt.maxChars = 1;
tt.selectable = false;
}
}
}


если не менять размер окна плеера - все ок.

если развернуть на все окно получаю следующее
http://www.darwin.museum.ru/new_variant/zom.jpg

как от этого избавиться? (размеры flash должны изменяться пропорционально размерам окна)

FourSide
08.08.2006, 16:54
_root.storedWidth = 550;
_root.storedHeight = 400;

Stage.scaleMode = 'noScale';
Stage.align = 'TL';
var objResize = new Object();
objResize.onResize = function() {
var prop_x = Stage.width / _root.storedWidth;
var prop_y = Stage.height / _root.storedHeight;
var total_prop = Math.min(prop_x, prop_y);
_root._xscale = _root._yscale = total_prop * 100;
}
Stage.addListener(objResize);

var clip:MovieClip = _root.createEmptyMovieClip('cross_mc', _root.getNextHighestDepth());
for (var j = 0; j<21; j++) {
for (i=0; i<20; i++) {
var lit:String = cross_arr[j][i];
if (lit != '!' && lit != '0') {
var tt:TextField = clip.createTextField('tt'+i+'_'+j, clip.getNextHighestDepth(), 20*i, 20*j, 20, 20);
tt.border = true;
//
tt.maxChars = 1;
tt.selectable = false;
}
}
}Что-нить типа такого?

AlexSol
08.08.2006, 17:00
нет. если менять размер окна, то происходит частичное наложение бордюров у текстовых полей. мне нужно этого избужать.

AlexSol
08.08.2006, 17:13
поскольку потерял веру в нормальное масштабирование, сделал так:

for (var j = 0; j<21; j++) {
for (i=0; i<20; i++) {
var lit:String = cross_arr[j][i];
if (lit != '!' && lit != '0') {
clip.lineStyle(1, 0x000000);
clip.moveTo(i*20, j*20);
clip.lineTo(i*20+20, j*20);
clip.lineTo(i*20+20, j*20+20);
clip.lineTo(i*20, j*20+20);
clip.lineTo(i*20, j*20); var tt:TextField = clip.createTextField('tt'+i+'_'+j, clip.getNextHighestDepth(), 20*i, 20*j, 20, 20);
tt.maxChars = 1;
tt.border=false
tt.selectable = false;
tt.text = lit;
}
}
}