Flash Action Script 3 individuelle hover Buttons
Meine letzten tieferen "Action Scripts" Erfahrung liegen schon fast eine Dekade zurück und ich habe mich gewundert wie "weit" Flash heute ist. Nach meinen letzen Erfahrung habe ich sehr lange nur das nötigste mit diesem Programm gemacht. Insbesondere durch AJAX sehe ich nur in sehr seltenen Fällen eine sinnvollen Einsatz von Flash.
Aktuell wollte ich ein paar Buttons erstellen. Deren Text über eine XML Datei bestimmt wird. Schön wäre zusätzlich ein kleinen "hover" Effekt als Mouse - Event Unterstützung.
Hier also meine Lösung.
import flash.events.Event
import flash.events.MouseEvent;
var xmlPath :String = "settings.xml";
var xmlData :XML;
// XML laden
var loader = new URLLoader();
loader.addEventListener(Event.COMPLETE, onDataHandler);
loader.load(new URLRequest(xmlPath));
var ani:Number;
// Data loading:
function onDataHandler(event:Event):void
{
if((event.target as URLLoader) != null ) {
xmlData = new XML(loader.data);
this.button.link_text.text = xmlData.link_text;
this.button.addEventListener(MouseEvent.CLICK, openLink);
this.button.addEventListener(MouseEvent.MOUSE_OUT, outEvent);
this.button.addEventListener(MouseEvent.MOUSE_OVER, overEvent);
this.button.addEventListener(Event.ENTER_FRAME, onEntF);
}
else{
trace("ERROR: URLLoader returned null");
}
}
function openLink(e:MouseEvent):void {
navigateToURL(new URLRequest(xmlData.link));
}
function overEvent(event:MouseEvent):void {
ani = 1;
}
function outEvent(event:MouseEvent):void {
ani = 0;
}
//
function onEntF(event:Event) {
if ((this.button.over.currentFrame != this.button.over.totalFrames) || (this.button.over.currentFrame != 0)) {
if (ani == 1) {
this.button.over.nextFrame();
}
if (ani == 0) {
this.button.over.prevFrame();
}
}
};
import flash.events.MouseEvent;
var xmlPath :String = "settings.xml";
var xmlData :XML;
// XML laden
var loader = new URLLoader();
loader.addEventListener(Event.COMPLETE, onDataHandler);
loader.load(new URLRequest(xmlPath));
var ani:Number;
// Data loading:
function onDataHandler(event:Event):void
{
if((event.target as URLLoader) != null ) {
xmlData = new XML(loader.data);
this.button.link_text.text = xmlData.link_text;
this.button.addEventListener(MouseEvent.CLICK, openLink);
this.button.addEventListener(MouseEvent.MOUSE_OUT, outEvent);
this.button.addEventListener(MouseEvent.MOUSE_OVER, overEvent);
this.button.addEventListener(Event.ENTER_FRAME, onEntF);
}
else{
trace("ERROR: URLLoader returned null");
}
}
function openLink(e:MouseEvent):void {
navigateToURL(new URLRequest(xmlData.link));
}
function overEvent(event:MouseEvent):void {
ani = 1;
}
function outEvent(event:MouseEvent):void {
ani = 0;
}
//
function onEntF(event:Event) {
if ((this.button.over.currentFrame != this.button.over.totalFrames) || (this.button.over.currentFrame != 0)) {
if (ani == 1) {
this.button.over.nextFrame();
}
if (ani == 0) {
this.button.over.prevFrame();
}
}
};
- Stefan Rieger's blog
- Anmelden um Kommentare zu schreiben