Zurück   Flashforum > Alternative Technologien > HTML und CSS

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 29-06-2011, 20:29   #1 (permalink)
Neuer User
 
Registriert seit: May 2007
Beiträge: 27
Lightbox-Rahmen über Flash-Anwendung

Hallo liebe Flash-Gemeinde,

habe ein Problem, dass mit einer jQuery-Plugin Lightbox-Inhalte über eine Flash-Webanwendung geblendet werden sollen. Der Inhalt der Lightbox ist zwar über der Flash-Anwendung. Die Rahmen der Lightbox verschwinden allerdings hinter dahinter, was unschön ausschaut.

Standard-Fix für Lightboxes ist es, wmode="transparent" zu setzen. Der Fix verbietet sich allerdings für die Anwendung. Es verhindert die Eingabe von Sonderzeichen wie '@'. Gibt es noch andere Möglichkeiten, die Rahmen doch noch über den Flash-Inhalten anzeigen zu lassen?

Verwenden pirobox 1.2 als jQuery-Plugin sowie SWFObject 2.0 zum Einbinden.

vielen herzlichen Dank für Tipps
Eik
eiklist ist offline   Mit Zitat antworten
Alt 29-06-2011, 21:05   #2 (permalink)
in the boondocks
 
Benutzerbild von shin10
 
Registriert seit: Feb 2006
Ort: Augsburg
Beiträge: 4.403
Zitat:
Zitat von eiklist Beitrag anzeigen
Standard-Fix für Lightboxes ist es, wmode="transparent" zu setzen.
Hi Eik,

das ist nicht Standard sondern ein ganz übles Gerücht das sich viel zu hartnäckig hält. Transparent ist der mieseste Performancekiller und bringt überhaupt nichts, wenn die swf nicht durchsichtig sein soll. Standard ist window und wenn unbedingt was drüber muss, dann opaque. Benutz NIE, NIE, NIE transparent, wenn es nicht wirklich sein muss.

Aber zu deinem Problem. Der Inhalt deiner Lightbox ist vermutlich nur zu sehen, weil es sich dabei um eine Lightboxvariante mit iframe handeln wird. Alles an css der Lightbox drum rum kann nicht über deine swf, weil es sich beim wmode window um ein eigenes fenster handelt, dass über deine Seite gelegt wird (wie das iframe auch). Da kann man außer opaque (oder eben transparent) nichts machen.

Am einfachsten wäre es für dich daher sicher, wenn du Eingabefelder für Emailadressen in zwei Textfelder aufteilst und das @ dazwischensetzt.

mfg

sx
__________________

flintfabrik.de
shin10 ist offline   Mit Zitat antworten
Alt 29-06-2011, 21:53   #3 (permalink)
in the boondocks
 
Benutzerbild von shin10
 
Registriert seit: Feb 2006
Ort: Augsburg
Beiträge: 4.403
Folgendes, ich hab hier mal nen workaround geschrieben. Offenbar kommen die KeyboardEvents nämlich durchaus an, nur kommts nicht ins Textfeld.

Da mein MBP aber erst in zwei Wochen kommt, kann ich dir nicht sagen, ob das auf dem Mac so auch passt. Soweit ich weiß sind ja gerade da die Drittbelegungen der Tastatur anders.

PHP-Code:
import flash.events.KeyboardEvent;
import flash.events.TextEvent;
import flash.text.TextField;
import flash.utils.Dictionary;
import flash.system.Capabilities;

var 
tf:TextField = new TextField();
tf.tf.20;
tf.width stage.stageWidth tf.2;
tf.type "input";
tf.border true;
addChild(tf);



var 
kEvtArr:Array = [];
var 
symbolStr:String "";

if (
Capabilities.os.toLowerCase().indexOf("windows") != -1)
{
    
kEvtArr['[KeyboardEvent type="keyDown" bubbles=true cancelable=false eventPhase=2 charCode=43 keyCode=187 keyLocation=0 ctrlKey=true altKey=true shiftKey=false]'] = "~";
    
kEvtArr['[KeyboardEvent type="keyDown" bubbles=true cancelable=false eventPhase=2 charCode=48 keyCode=48 keyLocation=0 ctrlKey=true altKey=true shiftKey=false]'] = "}";
    
kEvtArr['[KeyboardEvent type="keyDown" bubbles=true cancelable=false eventPhase=2 charCode=50 keyCode=50 keyLocation=0 ctrlKey=true altKey=true shiftKey=false]'] = "²";
    
kEvtArr['[KeyboardEvent type="keyDown" bubbles=true cancelable=false eventPhase=2 charCode=51 keyCode=51 keyLocation=0 ctrlKey=true altKey=true shiftKey=false]'] = "³";
    
kEvtArr['[KeyboardEvent type="keyDown" bubbles=true cancelable=false eventPhase=2 charCode=55 keyCode=55 keyLocation=0 ctrlKey=true altKey=true shiftKey=false]'] = "{";
    
kEvtArr['[KeyboardEvent type="keyDown" bubbles=true cancelable=false eventPhase=2 charCode=56 keyCode=56 keyLocation=0 ctrlKey=true altKey=true shiftKey=false]'] = "[";
    
kEvtArr['[KeyboardEvent type="keyDown" bubbles=true cancelable=false eventPhase=2 charCode=57 keyCode=57 keyLocation=0 ctrlKey=true altKey=true shiftKey=false]'] = "]";
    
kEvtArr['[KeyboardEvent type="keyDown" bubbles=true cancelable=false eventPhase=2 charCode=101 keyCode=69 keyLocation=0 ctrlKey=true altKey=true shiftKey=false]'] = "€";
    
kEvtArr['[KeyboardEvent type="keyDown" bubbles=true cancelable=false eventPhase=2 charCode=109 keyCode=77 keyLocation=0 ctrlKey=true altKey=true shiftKey=false]'] = "µ";
    
kEvtArr['[KeyboardEvent type="keyDown" bubbles=true cancelable=false eventPhase=2 charCode=113 keyCode=81 keyLocation=0 ctrlKey=true altKey=true shiftKey=false]'] = "@";
    
kEvtArr['[KeyboardEvent type="keyDown" bubbles=true cancelable=false eventPhase=2 charCode=223 keyCode=219 keyLocation=0 ctrlKey=true altKey=true shiftKey=false]'] = "\\";
    
symbolStr "~}²³{[]€µ@\\";
    
tf.addEventListener(KeyboardEvent.KEY_DOWNtextField_keyDownHandlerfalseint.MAX_VALUEtrue);
    
tf.addEventListener(TextEvent.TEXT_INPUTtextField_textInputHandlerfalseint.MAX_VALUEtrue);
}else if (
Capabilities.os.toLowerCase().indexOf("mac os") != -1)
{
    
//???
}else if (Capabilities.os.toLowerCase().indexOf("linux") != -1)
{
    
//???
}

function 
textField_keyDownHandler(e:KeyboardEvent):void{
    if (
kEvtArr[e])    {
        var 
tf:TextField e.currentTarget as TextField;
        
tf.replaceText(tf.selectionBeginIndextf.selectionEndIndexkEvtArr[e] );
        
tf.setSelection(tf.selectionBeginIndex+1tf.selectionBeginIndex+1);
    }
}

function 
textField_textInputHandler(e:TextEvent):void{
    if (
symbolStr.indexOf(e.text) != -&& e.text.length==1)e.preventDefault();

edit:// update um Probleme mit der keyboardLocation zu vermeiden

Besteht das Problem eigentlich nur unter Windows?
__________________

flintfabrik.de

Geändert von shin10 (30-06-2011 um 19:39 Uhr) Grund: unnützen output gestrichen
shin10 ist offline   Mit Zitat antworten
Alt 11-07-2011, 19:37   #4 (permalink)
Neuer User
 
Registriert seit: May 2007
Beiträge: 27
super, danke dir.

> Transparent ist der mieseste Performancekiller
gut zu wissen, danke

die Lightbox-Inhalte waren nur Datenschutzerklärung, Aboutseite etc, die über einen Flash-Inhalt liegen mussten. Für diese Inhalte reichte unserem Projektleiter in der Zwischenzeit ein Standard-Popup statt der gut aussehenden Lightbox. Kluger Mann

viele Grüße
Eik
eiklist ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Flash CS3] über Flash Lightbox schließen? Ibu400 Flash Einsteiger 2 28-05-2010 14:33
Lightbox über Flash legen Matthias147 HTML und CSS 0 20-04-2010 15:55
Objekt inkl. Rahmen über AS ansprechen paschke ActionScript 3 3 24-11-2009 10:02
air anwendung über shortcut ansteuern Argomix Adobe AIR 2 21-07-2009 18:45
Frage: Externe Anwendung über MenuBar-Komponente starten Trouble Shooter Flash MX 2004 6 30-10-2007 11:21


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:46 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2014 Marc Thiele