Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Flex (http://www.flasher.ru/forum/forumdisplay.php?f=84)
-   -   CSS переменные к которым можно достучатся из Flex-a (http://www.flasher.ru/forum/showthread.php?t=158591)

AntonSurkont 21.06.2011 13:56

CSS переменные к которым можно достучатся из Flex-a
 
Здравствуйте уважаемые программисты.
Есть ЦСС:
Код:

/* CSS file */
@namespace s "library://ns.adobe.com/flex/spark";
@namespace mx "library://ns.adobe.com/flex/mx";
@namespace local "*";

s|TextArea
{
        font-size: 20;
        font-family: textAreaFont;
}

Можно ли как-нибудь достучатся к textAreaFont во флексе и присвоить ему какой-нибудь фонт?

GBee 21.06.2011 14:08

Вроде через mx:CSSStyleDeclaration можно попробовать.

AntonSurkont 21.06.2011 14:19

Если можно пожалуйста по подробнее

GBee 21.06.2011 15:55

http://help.adobe.com/ru_RU/FlashPla...filter_air=2.6

AntonSurkont 21.06.2011 16:18

В официальной справке я ни слова не нашел как это сделать

alatar 21.06.2011 17:03

Плохо ищете. http://help.adobe.com/en_US/Flex/4.0...9084-7f7c.html
Первый же пример. "Достукиваться" к textAreaFont нет смысла. Вам надо поменять font-family для TextArea.

AntonSurkont 21.06.2011 17:21

Да не, с font-family это понятно. Я похоже плохо объяснил.
Шрифты находятся в СВФ-файле и они подгружаются.
Код AS3:

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
  xmlns:s="library://ns.adobe.com/flex/spark"
  xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600"
  xmlns:local="*" preinitialize="application1_preinitializeHandler(event)">
  <fx:Script>
    <![CDATA[
      import mx.controls.Alert;
      import mx.events.FlexEvent;
      import ru.etcs.utils.FontLoader;
 
      private const _loader:FontLoader = new FontLoader();//Загружает СВФ-ку со шрифтами и достает шрифты
 
      protected function application1_preinitializeHandler(event:FlexEvent):void
      {
        _loader.addEventListener(Event.COMPLETE, handler_complete);
        _loader.load(new URLRequest('SomeFont.swf'));
      }
 
      private function handler_complete(event:Event):void
      {
        var fonts:Array = _loader.fonts;//Достаем шрифты из загруженной СВФ-ки
 
        var styleManager:IStyleManager2 = styleManager;
 
        for each (var font:Font in fonts)
        {
                //Применяем шрифты к компонентам
                styleManager.getStyleDeclaration("spark.components.TextArea").setStyle("fontFamily", font.fontName);
                styleManager.getStyleDeclaration("MyText").setStyle("fontFamily", font.fontName);
        }
    }
  ]]>
</fx:Script>
        <fx:Declarations>
                <!-- Place non-visual elements (e.g., services, value objects) here -->
        </fx:Declarations>
 
        <fx:Style source="MyTheme.css"/>
 
        <s:layout>
                <s:VerticalLayout/>
        </s:layout>
 
        <s:TextArea id="ta" text="sd sd fsad fsad fsadf"/>
        <local:MyText id="myT" text="wef weqf wef"/>                                                                               
 
</s:Application>

В том моменте где я применяю шрифты к компонентам я хотел бы присвоить шрифт какой нибудь переменной типа textAreaFont и чтобы это отразилось на всех компонентах для которых в ЦСС прописано
font-familty: textAreaFont

xsar 21.06.2011 17:44

попробуйте почитать про @font-face.

GBee 21.06.2011 17:48

Попробуйте зарегить такой шрифт Font.registerFont, а потом через CSSStyledeclaration прописать его имя.

AntonSurkont 21.06.2011 18:07

Спасибо GBee по вашей наводке начал гуглить и нашел очень хорошую статью http://www.flexafterdark.com/docs/Flex-Fonts

Всем спасибо кто откликнулся


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

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