Autor |
Nachricht |
fuchsbau
Threadersteller
Dabei seit: 15.08.2005
Ort: .//root
Alter: 40
Geschlecht:
|
Verfasst Di 11.03.2008 12:59
Titel [actionscript] mouseover-animation mit onEnterFrame |
|
|
75x740px breiter Film, bei rollover über den kompletten film soll der movieclip "holder" ins bild fahren, beim rollout wieder raus. funzt im flash und im Firefox prima, im IE garnicht (fährt nie ins bild), im safari mit störungen. hat jemand ne erklärung dafür?
Code: | function reinmove() {
if ( _root.holder._x < 0 ) {
_root.holder._x += 1
} else {
clearInterval(reinIntervalID);
}
}
function rausmove() {
if ( _root.holder._x > -75 ) {
_root.holder._x -= 1;
} else {
clearInterval(rausIntervalID);
}
}
// Animation ausführen
_root.holder.onEnterFrame = function() {
if ( ( _root._xmouse > 1 ) && ( _root._xmouse < 75 ) &&
( _root._ymouse > 1 ) && ( _root._ymouse < 540 ) ) {
if ( _root.holder._x == -75 ) {
reinIntervalID = setInterval(reinmove,5);
}
} else {
if ( _root.holder._x == 0 ) {
rausIntervalID = setInterval(rausmove,5);
}
}
}
|
Zuletzt bearbeitet von fuchsbau am Di 11.03.2008 14:30, insgesamt 3-mal bearbeitet
|
|
|
|
|
phihochzwei
Moderator
Dabei seit: 08.06.2006
Ort: Mülheim an der Ruhr
Alter: 46
Geschlecht:
|
Verfasst Di 11.03.2008 14:00
Titel
|
|
|
Hast Du im IE mal drauf geklickt ?
|
|
|
|
|
Anzeige
|
|
|
fuchsbau
Threadersteller
Dabei seit: 15.08.2005
Ort: .//root
Alter: 40
Geschlecht:
|
Verfasst Di 11.03.2008 14:12
Titel
|
|
|
ja klar, so einfach isses leider nech. also draufklicken und dadurch "aktivieren" bringt nichts.
|
|
|
|
|
phihochzwei
Moderator
Dabei seit: 08.06.2006
Ort: Mülheim an der Ruhr
Alter: 46
Geschlecht:
|
Verfasst Di 11.03.2008 15:44
Titel
|
|
|
Dann machst Du was generell falsch. Denn wenn es daran nicht liegt: Flash macht keinen Unterschied, welcher Browser es ist. Flash ist Flash. Einzig die Version des Plugins ist wichtig.
|
|
|
|
|
fuchsbau
Threadersteller
Dabei seit: 15.08.2005
Ort: .//root
Alter: 40
Geschlecht:
|
Verfasst Di 11.03.2008 15:46
Titel
|
|
|
wasn das für ne antwort? was könnte man denn z.B. generell falsch machen?
|
|
|
|
|
phihochzwei
Moderator
Dabei seit: 08.06.2006
Ort: Mülheim an der Ruhr
Alter: 46
Geschlecht:
|
Verfasst Di 11.03.2008 15:57
Titel
|
|
|
Generell falsch ist schonmal, dass du in einem onEnterFrame Intervalle erzeugt.
und ansonsten: FLA´s posten hilft, denn nur so können die meisten hier den Fehler finden.
Zuletzt bearbeitet von phihochzwei am Di 11.03.2008 15:58, insgesamt 1-mal bearbeitet
|
|
|
|
|
fuchsbau
Threadersteller
Dabei seit: 15.08.2005
Ort: .//root
Alter: 40
Geschlecht:
|
Verfasst Di 11.03.2008 16:01
Titel
|
|
|
die Intervalle werden absolut kontrolliert erzeugt, das onEnterFrame dient nur der permanenten mouseover-abfrage. es arbeitet immer nur 1 Intervall, erst wenn dieses gecleared ist, kann das nächste kommen.
fla:
Code: | /* Flashvars verarbeiten */
// Farbschema setzen
if ( linkovercolor == 'cyan' ) {
overcolor = '0x00A6EB';
} else {
overcolor = '0xE50083';
}
// Aktives Element setzen
activeitem = inactiveitem;
activeitem = 0; //für lokalen Test
// Animation setzen
if (rolloutanimation == 0) {
rollout = 0;
} else {
rollout = 1;
}
// Parameter
param = url_param;
// XML Pfad
xmldir = rootxml;
xmldir = 'toll.xml'; //für lokalen Test
/* Textformate setzen */
standardFormat = new TextFormat();
standardFormat.font = "Arial";
standardFormat.color = 0x666666;
standardFormat.size = 12;
markedFormat = new TextFormat();
markedFormat.font = "Arial";
markedFormat.color = overcolor;
markedFormat.size = 12;
/* Holder erzeugen und positionieren */
this.createEmptyMovieClip('holder', 1);
if ( rollout == 1 ) {
_root.holder._x = -75;
} else {
_root.holder._x = 0;
}
_root.holder._y = 0;
/* Elemente einlesen */
function loadXML(loaded) {
if (loaded) {
// Anzahl Menüpunkte lesen
anzahlitems = this.firstChild.childNodes.length -1;
// Textfelder erzeugen und formatieren
link = new Array();
for (i=0; i<=anzahlitems; i++) {
_root.holder.createTextField('textfeld'+i, i, 0, 522-i*16, 75, 18);
_root.holder['textfeld'+i].text = this.firstChild.childNodes[anzahlitems-i].childNodes[0].firstChild.nodeValue;
link[anzahlitems-i] = this.firstChild.childNodes[i].childNodes[1].firstChild.nodeValue + param;
if ( anzahlitems-i != activeitem ) {
_root.holder['textfeld'+i].setTextFormat(standardFormat);
} else {
_root.holder['textfeld'+i].setTextFormat(markedFormat);
}
}
}
}
xmlData = new XML();
xmlData.ignoreWhite = true;
xmlData.onLoad = loadXML;
xmlData.load(xmldir);
_root.holder.onRollOver = function() {
// Mouseover
_root.holder.onMouseMove = function() {
overitem = int( ( 540 - _root._ymouse ) / 16 );
for (i=0; i<=anzahlitems; i++) {
if ( anzahlitems-i!=activeitem ) {
if ( i!=overitem ) {
_root.holder['textfeld'+i].setTextFormat(standardFormat);
} else {
_root.holder['textfeld'+i].setTextFormat(markedFormat);
}
}
}
}
//Verlinkung
_root.holder.onMouseDown = function() {
overitem = int( ( 540 - _root._ymouse ) / 16 );
if ( activeitem!=anzahlitems-overitem ) {
getURL(link[overitem], '_self');
}
}
}
/* Animationsfunktionen */
function reinmove() {
if ( _root.holder._x < 0 ) {
_root.holder._x += 1;
} else {
clearInterval(reinIntervalID);
}
}
function rausmove() {
if ( _root.holder._x > -75 ) {
_root.holder._x -= 1;
} else {
clearInterval(rausIntervalID);
}
}
// Animation ausführen
if ( rollout == 1 ) {
_root.holder.onEnterFrame = function() {
if ( ( _root._xmouse > 1 ) && ( _root._xmouse < 75 ) && ( _root._ymouse > 1 ) && ( _root._ymouse < 540 ) ) {
if ( _root.holder._x == -75 ) {
reinIntervalID = setInterval(reinmove,5);
}
} else {
if ( _root.holder._x == 0 ) {
rausIntervalID = setInterval(rausmove,5);
}
}
}
} |
xml:
Code: | <?xml version="1.0" ?>
<navi>
<item>
<name>willkommen</name>
<url><![CDATA[http://www.google.de]]></url>
</item>
<item>
<name>kleidung</name>
<url><![CDATA[http://www.google.de]]></url>
</item>
<item>
<name>impressum</name>
<url><![CDATA[http://www.google.de]]></url>
</item>
</navi> |
Zuletzt bearbeitet von fuchsbau am Di 11.03.2008 16:55, insgesamt 5-mal bearbeitet
|
|
|
|
|
phihochzwei
Moderator
Dabei seit: 08.06.2006
Ort: Mülheim an der Ruhr
Alter: 46
Geschlecht:
|
Verfasst Di 11.03.2008 16:16
Titel
|
|
|
Moment. DAS ist alles ?
onMouseOver fährt die Navi rein und das wars ?
|
|
|
|
|
|
|
|
Ähnliche Themen |
Flash onEnterFrame Animation als Video ausgeben?
[Actionscript] Mouseover: In den Vordergrund
Darstellungsfehler GIF-Animation-Mouseover im IE
onEnterFrame durch setInterval ersetzen
Bildergalerie Mouseover andere Position & Mouseover Scroll
Mouseover
|
|