コード例 #1
0
        private void autoScaleNativeTextField(bc.flash.text.AsTextField textField)
        {
            float size      = ((float)(textField.getDefaultTextFormat().getSize()));
            int   maxHeight = (int)(textField.getHeight() - 4);
            int   maxWidth  = (int)(textField.getWidth() - 4);

            while (textField.getTextWidth() > maxWidth || textField.getTextHeight() > maxHeight)
            {
                if (size <= 4)
                {
                    break;
                }
                AsTextFormat format = textField.getDefaultTextFormat();
                format.setSize(size--);
                textField.setTextFormat(format);
            }
        }
コード例 #2
0
        private void showFatalError(String message)
        {
            AsTextField  textField  = new AsTextField();
            AsTextFormat textFormat = new AsTextFormat("Verdana", 12, 0xFFFFFF);

            textFormat.setAlign(AsTextFormatAlign.CENTER);
            textField.setDefaultTextFormat(textFormat);
            textField.setWordWrap(true);
            textField.setWidth(mStage.getStageWidth() * 0.75f);
            textField.setAutoSize(AsTextFieldAutoSize.CENTER);
            textField.setText(message);
            textField.setX((mStage.getStageWidth() - textField.getWidth()) / 2);
            textField.setY((mStage.getStageHeight() - textField.getHeight()) / 2);
            textField.setBackground(true);
            textField.setBackgroundColor(0x440000);
            getNativeOverlay().addChild(textField);
        }
コード例 #3
0
        private void createRenderedContents()
        {
            if (mQuadBatch != null)
            {
                mQuadBatch.removeFromParent(true);
                mQuadBatch = null;
            }
            float        scale      = AsStarling.getContentScaleFactor();
            float        width      = mHitArea.getWidth() * scale;
            float        height     = mHitArea.getHeight() * scale;
            AsTextFormat textFormat = new AsTextFormat(mFontName, mFontSize * scale, mColor, mBold, mItalic, mUnderline, null, null, mHAlign);

            textFormat.setKerning(mKerning);
            sNativeTextField.setDefaultTextFormat(textFormat);
            sNativeTextField.setWidth(width);
            sNativeTextField.setHeight(height);
            sNativeTextField.setAntiAliasType(AsAntiAliasType.ADVANCED);
            sNativeTextField.setSelectable(false);
            sNativeTextField.setMultiline(true);
            sNativeTextField.setWordWrap(true);
            sNativeTextField.setText(mText);
            sNativeTextField.setEmbedFonts(true);
            sNativeTextField.setOwnProperty("filters", mNativeFilters);
            if (sNativeTextField.getTextWidth() == 0.0f || sNativeTextField.getTextHeight() == 0.0f)
            {
                sNativeTextField.setEmbedFonts(false);
            }
            if (mAutoScale)
            {
                autoScaleNativeTextField(sNativeTextField);
            }
            float textWidth  = sNativeTextField.getTextWidth();
            float textHeight = sNativeTextField.getTextHeight();
            float xOffset    = 0.0f;

            if (mHAlign == AsHAlign.LEFT)
            {
                xOffset = 2;
            }
            else
            {
                if (mHAlign == AsHAlign.CENTER)
                {
                    xOffset = (width - textWidth) / 2.0f;
                }
                else
                {
                    if (mHAlign == AsHAlign.RIGHT)
                    {
                        xOffset = width - textWidth - 2;
                    }
                }
            }
            float yOffset = 0.0f;

            if (mVAlign == AsVAlign.TOP)
            {
                yOffset = 2;
            }
            else
            {
                if (mVAlign == AsVAlign.CENTER)
                {
                    yOffset = (height - textHeight) / 2.0f;
                }
                else
                {
                    if (mVAlign == AsVAlign.BOTTOM)
                    {
                        yOffset = height - textHeight - 2;
                    }
                }
            }
            AsBitmapData bitmapData = new AsBitmapData(width, height, true, 0x0);

            bitmapData.draw(sNativeTextField, new AsMatrix(1, 0, 0, 1, 0, ((int)(yOffset)) - 2));
            sNativeTextField.setText("");
            if (mTextBounds == null)
            {
                mTextBounds = new AsRectangle();
            }
            mTextBounds.setTo(xOffset / scale, yOffset / scale, textWidth / scale, textHeight / scale);
            AsTexture texture = AsTexture.fromBitmapData(bitmapData, false, false, scale);

            if (mImage == null)
            {
                mImage = new AsImage(texture);
                mImage.setTouchable(false);
                addChild(mImage);
            }
            else
            {
                mImage.getTexture().dispose();
                mImage.setTexture(texture);
                mImage.readjustSize();
            }
        }