<?xml version="1.0" encoding="utf-8"?>
<mx:Application
xmlns:mx="http://www.adobe.com/2006/mxml"
xmlns:text_effect="net.sakri.text_effect.*"
layout="vertical"
creationComplete="init();"
>
<mx:Script>
<![CDATA[
import mx.controls.Alert;
[Bindable]
public var intro_panel_text:String="Hi There!</br></br>Welcome to this AWESOME tool! When I say 'AWESOME', I mean TOTALLY SWEET!!11</br></br>Wether you wish to monetize on innocent communities or steal money from clueless investors, THIS is THE tool to create your Web2.0 startup LOGO!!! (in Flex that is), I fully realize this app *could* save the damn logo as a .jpg or a .png, however, this is more or less a joke, and meant for demonstrative purposes, so, feel free to grab the sourcecode (right click 'view source') and build that functionality yourself.";
public function init():void{
var tf:TextFormat=logo.getTextFormat();
var cur_font:String=tf.font;
for(var i:uint=0;i<fonts_list.dataProvider.length;i++){
if(fonts_list.dataProvider[i].fontName==cur_font){
fonts_list.selectedIndex=i;
break;
}
}
bold_text_cb.selected=tf.bold;
italic_text_cb.selected=tf.italic;
updateTextStyles();
}
private function updateLogoControls():void{
if(logo.text!=logo_title.text)logo.text=logo_title.text;
if(logo.getStyle("reflectionYOffset")!=reflection_y_offset_ns.value){
logo.setStyle("reflectionYOffset",reflection_y_offset_ns.value);
}
if(logo.getStyle("wavePeaks")!=wave_peaks_ns.value){
logo.setStyle("wavePeaks",wave_peaks_ns.value);
}
if(logo.getStyle("minWavePeak")!=wave_min_peak_ns.value){
logo.setStyle("minWavePeak",wave_min_peak_ns.value);
}
if(logo.getStyle("waveCenter")!=wave_center_ns.value){
logo.setStyle("waveCenter",wave_center_ns.value);
}
if(logo.getStyle("maxWavePeak")!=wave_max_peak_ns.value){
logo.setStyle("maxWavePeak",wave_max_peak_ns.value);
}
}
private function updateTextStyles():void{
if(logo.getStyle("useGradient")!=use_gradient_fill.selectedValue){
logo.setStyle("useGradient",use_gradient_fill.selectedValue);
}
if(logo.getStyle("fillColor")!=logo_color.selectedColor){
logo.setStyle("fillColor",logo_color.selectedColor);
}
var colors:Array=logo.getStyle("gradientColors");
var new_colors:Array=new Array(gradient_top_color.selectedColor,gradient_bottom_color.selectedColor);
var gc_change:Boolean=false;
if(colors==null){
gc_change=true;
}else{
if(colors[0]!=new_colors[1])gc_change=true;
if(colors[0]!=new_colors[1])gc_change=true;
}
if(gc_change)logo.setStyle("gradientColors",new_colors);
var tf:TextFormat=logo.getTextFormat();
var update_tf:Boolean=false;
if(use_embedded_font.selected){
if(tf.font!=embedded_fonts_list.selectedLabel){
tf.font=embedded_fonts_list.selectedLabel;
update_tf=true;
}
}else{
if(tf.font!=fonts_list.selectedLabel){
tf.font=fonts_list.selectedLabel;
update_tf=true;
}
}
if(tf.bold!=this.bold_text_cb.selected){
tf.bold=this.bold_text_cb.selected;
update_tf=true;
}
if(tf.italic!=this.italic_text_cb.selected){
tf.italic=italic_text_cb.selected;
update_tf=true;
}
if(update_tf)logo.setTextFormat(tf,use_embedded_font.selected);
}
[Embed(systemFont="Garamond", fontName="garamond", fontWeight="bold", mimeType="application/x-font")]
private var _garamondClass:Class;
[Embed(systemFont="Arial", fontName="arial", fontWeight="bold", mimeType="application/x-font")]
private var _arialClass:Class;
]]>
</mx:Script>
<mx:Style>
Application {
backgroundColor: #ffffff;
backgroundGradientColors: #ffffff, #7fbce8;
themeColor: #7fbce8;
}
.introText{
paddingLeft:10px;
paddingRight:10px;
paddingTop:10px;
fontSize:14px;
fontWeight:bold;
color:#666666;
}
</mx:Style>
<mx:VBox width="100%" height="100%" horizontalGap="10">
<text_effect:Web2pointOLogo id="logo" width="100%" text="Web2.OMG WTF ROTFLOL!!11" horizontalCenter="0"
reflectionYOffset="-40" fillColor="0xFF0084"
/>
<mx:HBox id="explorer_interface" horizontalGap="10" height="100%" width="100%">
<mx:Panel title="The UberDopeTastic Web2.0 logo machine" width="100%" height="100%">
<mx:TextArea id="intro_text" width="100%" height="100%" borderThickness="0" styleName="introText" htmlText="{intro_panel_text}" />
</mx:Panel>
<mx:Panel title="Logo Controls" width="100%" height="100%" layout="vertical">
<mx:Form>
<mx:FormItem label="enter web2.0 logo title:">
<mx:TextInput id="logo_title" text="Web2.OMG WTF ROTFLOL!!11" />
</mx:FormItem>
<mx:FormItem label="change reflection y offset:">
<mx:NumericStepper id="reflection_y_offset_ns" minimum="-100" maximum="100"
stepSize="1" value="-40" width="65" />
</mx:FormItem>
<mx:FormItem label="wave peaks:">
<mx:NumericStepper id="wave_peaks_ns" minimum="1" maximum="15"
stepSize="1" value="1" width="65" />
</mx:FormItem>
<mx:FormItem label="wave min peak:">
<mx:NumericStepper id="wave_min_peak_ns" minimum="0" maximum="{wave_center_ns.value}"
stepSize=".05" value="0" width="65" />
</mx:FormItem>
<mx:FormItem label="wave center:">
<mx:NumericStepper id="wave_center_ns" minimum="{wave_min_peak_ns.value}" maximum="{wave_max_peak_ns.value}"
stepSize=".05" value=".5" width="65" />
</mx:FormItem>
<mx:FormItem label="wave max peak:">
<mx:NumericStepper id="wave_max_peak_ns" minimum="{wave_center_ns.value}" maximum="1"
stepSize=".05" value="1" width="65" />
</mx:FormItem>
<mx:Button click="updateLogoControls();" label="update Sweet Web2.0 Logo!" />
</mx:Form>
</mx:Panel>
<mx:Panel title="Text Format Controls" width="100%" height="100%" layout="vertical">
<mx:Form>
<mx:FormItem label="choose font color:">
<mx:HBox>
<mx:ColorPicker id="logo_color" selectedColor="0x055699" />
</mx:HBox>
</mx:FormItem>
<mx:FormItem label="use gradient fill:">
<mx:RadioButtonGroup id="use_gradient_fill" />
<mx:HBox>
<mx:RadioButton groupName="use_gradient_fill" value="false" label="no" />
<mx:RadioButton groupName="use_gradient_fill" value="true" label="yes" selected="true" />
</mx:HBox>
</mx:FormItem>
<mx:FormItem label="choose gradient colors:">
<mx:HBox>
<mx:Label text="bottom:"/>
<mx:ColorPicker id="gradient_bottom_color" selectedColor="0x055699" />
<mx:Label text="top:"/>
<mx:ColorPicker id="gradient_top_color" selectedColor="0x7FBCE8" />
</mx:HBox>
</mx:FormItem>
<mx:FormItem label="bold:">
<mx:CheckBox id="bold_text_cb" />
</mx:FormItem>
<mx:FormItem label="italic:">
<mx:CheckBox id="italic_text_cb" />
</mx:FormItem>
<mx:HRule />
<mx:FormItem label="use embedded font:">
<mx:CheckBox id="use_embedded_font" />
</mx:FormItem>
<mx:FormItem label="choose font:">
<mx:ComboBox id="fonts_list" dataProvider="{flash.text.Font.enumerateFonts(true)}" labelField="fontName" />
</mx:FormItem>
<mx:FormItem label="choose Embedded font:">
<mx:ComboBox id="embedded_fonts_list" dataProvider="{flash.text.Font.enumerateFonts()}" labelField="fontName" />
</mx:FormItem>
<mx:Button click="updateTextStyles();" label="update Sweet Web2.0 Logo!" />
</mx:Form>
</mx:Panel>
</mx:HBox>
</mx:VBox>
</mx:Application>