Ricardo,

no nosso caso, todas as views são ficheiros Actionscript que estendem SkinnableContainer e possuem uma skin em MXML. Na View inicial (Application /WindowedApplication) nós não colocamos nenhum código visual, tirando a View (SkinnableContainer) que tem a aplicacão propriamente dita.

Ou seja:

<s:Application />

<s:AirgileView />

</s:Application>


Quanto ao AirgileView:

    public class AirgileView extends SkinnableComponent
    {
        //  etc
    }

Relativamente à associacão da Skin, é feita no CSS:


core|AirgileView
{
skin-class: ClassReference("com.airgile.crm.skins.petro.views.core.AirgileViewSkin");
}


E depois no AirgileViewSkin.mxml são definidas então as posicões dos botões, e outros. Exemplo:

<s:Group id="contentHolder"
        left="0" right="0" top="63" bottom="20">

<users:LoginView id="loginView"
            width="100%" height="100%"
            includeIn="login"/>

<view:OverviewView id="overview"
            width="100%" height="100%"
            includeInLayout="false"
            includeInLayout.overview="true"
            visible="false"
            visible.overview="true"/>

<view2:TicketsView id="ticketsView"
            width="100%" height="100%"
            includeInLayout="false"
            includeInLayout.tickets="true"
            visible="false"
            visible.tickets="true"/>

<view:ConfigurationView id="configurationView"
            width="100%" height="100%"
            includeInLayout="false"
            includeInLayout.configuration="true"
            visible="false"
            visible.configuration="true"/>

<users:MyProfileView id="myProfileView"
            width="100%" height="100%"
            includeInLayout="false"
            includeInLayout.myProfile="true"
            visible="false"
            visible.myProfile="true"
            user="{hostComponent.user}"
            accountBlocked="{hostComponent.account.blocked}"/>

</s:Group>



(nota: nós usamos o includeInLayout e o visible neste caso em vez de States por questões de performance. Mas isso é outra discussão...).



linkedIn <http://pt.linkedin.com/in/jsaleiro> João Saleiro
Chief Technology Officer
Tel:    00351 916 077 097
Email:  [email protected] <mailto:[email protected]>
Skype:  joao.saleiro <callto://joao.saleiro>

Webfuel Solutions <http://www.webfuel.pt> www.webfuel.pt <http://www.webfuel.pt>
Lisbon, Portugal


On 16-06-2011 17:06, Ricardo Araújo wrote:
Ajudou, mas ainda tenho umas dúvidas....

por exemplo:

crio um projecto novo, e na WindowedApplication coloco-lhe dois botões
normais<s:Button />  ... depois como é que eu na skin que aplicar ao
WindowedApplication posso definir por exemplo posições para cada
botão?
(se fosse um SkinnableComponent diria que aquele botão era uma
SkinPart)


On Jun 16, 4:57 pm, João Saleiro<[email protected]>  wrote:
Ricardo,

n�o percebi bem a tua quest�o. N�s aqui resolvemos a quest�o do
multi-skinning com facilidade, usando stylesheets CSS.
Cada theme tem o seu pr�prio CSS que define o aspecto gr�fico de *todos
e quaisquer* componentes visuais.

A t�tulo de exemplo:

s|Application
{
      skin-class:
ClassReference("com.airgile.crm.skins.petro.views.core.ApplicationSkin");

}

view3|NotificationBox
{
      skin-class:
ClassReference("pt.webfuel.core.ui.notification.view.skin.NotificationBoxSk 
in");

}

core|AirgileView
{
      skin-class:
ClassReference("com.airgile.crm.skins.petro.views.core.AirgileViewSkin");

}

s|TextArea
{
      skin-class:
ClassReference("com.airgile.skins.petro.components.textarea.TextAreaSkin");
      focus-alpha: 0;

}

Quando queres mudar o theme, simplesmente trocas o CSS (usando ou n�o
Runtime CSS).

Espero que ajude.

linkedIn<http://pt.linkedin.com/in/jsaleiro>  Jo�o Saleiro
Chief Technology Officer
Tel:    00351 916 077 097
Email:  [email protected]<mailto:[email protected]>
Skype:  joao.saleiro<callto://joao.saleiro>

Webfuel Solutions<http://www.webfuel.pt>        www.webfuel.pt
<http://www.webfuel.pt>
Lisbon, Portugal

On 16-06-2011 16:42, Ricardo Ara�jo wrote:







Boa tarde malta,
Estou aqui a planear uma aplica��o em que pretendo personaliza-la a
n�vel do design para cada cliente.
Aplico uma skin � WindowedApplication e depois queria na pr�pria skin
aplicar skins doutros componentes que est�o dentro da
WindowedApplication... como fa�o?
provavelmente n�o se faz assim? :) ... � que depois teria que dizer
que um componente declarado em mxml seria uma SkinPart...
Existe por exemplo outro caso de um ecr� em que s�o constru�dos
objectos dinamicamente no componente que estende do
skinnablecomponent. Como fa�o para criar skin parts dinamicamente? e
depois na skin como lido com esses objectos que foram criados?

--
Recebeu esta mensagem porque está inscrito no grupo "Mailing List da Comunidade 
Portuguesa de Rich Internet Applications - www.riapt.org" dos Grupos do Google.

Para publicar uma mensagem neste grupo, envie um e-mail para 
[email protected].
Para anular a inscrição neste grupo, envie um e-mail para 
[email protected].
Para ver mais opções, visite este grupo em 
http://groups.google.com/group/riapt?hl=pt-PT.

<<inline: LinkedIn.gif>>

<<inline: Webfuel.gif>>

Responder a