PDA

Volledige versie bekijken : swf adres


bremskie
%Europe/Berlin %483 %2010, 12:36
Hallo ik heb een probleem met mijn swfadres.
Het werkt in zoverre dat als ik van pagina veranderd dan veranderd het adres in de url en ook de title tag van de html file veranderd.

Maar.....

Als het goed is zou ik als ik op mijn contact pagina ben en deze zou bewaren in mijn favorieten in de browser dat ik als ik terugkomt op de site via deze bladwijzer ik gelijk op de contact pagina uit zou komen.
Dit werkt dus niet.

Dit is mijn onMenuClick functie in mijn ducument.class:

waarbij _menu._btnLabels[i];
_menu een geimporteerde .as is met daarin een array _btnLabels
Hier geeft ie een goede output



private function onMenuClick(e:MouseEvent):void {
var i:String=e.target.id;
var btnName:String=_menu._btnLabels[i];
var newAddress:String="/"+btnName+"/";
SWFAddress.setValue(newAddress);
}

private function handleSWFAddress(event:SWFAddressEvent):void {
var link:String=event.value;

SWFAddress.setTitle(formatTitle(link));
}

private function formatTitle(newTitle:String):String {
var updatedTitle:String=newTitle;
updatedTitle=updatedTitle.replace(/\//g,"");
updatedTitle="Donaldwebsite | "+updatedTitle;
return updatedTitle;
}

Ik hoop dat iemandme even kan helpen alvast bedankt

[edit]
Dit is de oorspronkelijke handleSWFAddress functie


private function handleSWFAddress(event:SWFAddressEvent):void
{
var link:String = event.value;
var mcName:String = link;
mcName = mcName.replace(/\//g,"");
for(var i:uint = 0; i < pages.length; i++)
{
pages[i].visible = false;
}
getChildByName(mcName + "_mc").visible = true;
SWFAddress.setTitle(formatTitle(link));
}


Waarin pages een array is met alle button instances.

Ergens begrijp ik wel waarom ie het niet doet want in het originele voorbeeld worden alle pagina's gelijk on stage gezet in de timeline.

Met visible true etc kan je deze weergeven of niet.

Bij mijn site worden alle objecten op de stage gezet na klik op desbetreffende menubutton.

Hoe ga ik hiermee om?

marcvz
%Europe/Berlin %540 %2010, 13:58
Dan simuleer je toch een button klik in de handleSWFAddress functie?

bremskie
%Europe/Berlin %383 %2010, 10:12
Hoi Marc, bedankt wederom voor je reply
Ik heb het zo opgelost maar is dit de juiste manier?

private function handleSWFAddress(event:SWFAddressEvent):void {

var link:String=event.value;
var mcName:String=link;
mcName=mcName.replace(/\//g,"");

SWFAddress.setTitle(formatTitle(mcName));
if (mcName == "Biografie") {

var p=replacelinebreaks(_contentList[2].toString());
}
if (mcName == "Links") {
var l=replacelinebreaks(_contentList[4].toString());
}

Tweener.addTween(_homefoto, {alpha:0, time:.5,delay:.1, transition:"linear"});
Tweener.addTween(_GalleryMenu, {alpha:0, time:.5,delay:.1, transition:"linear"});
Tweener.addTween(_Gallery, {alpha:0, time:.5,delay:.1, transition:"linear"});
Tweener.addTween(_entireForm, {alpha:0, time:.5,delay:.1, transition:"linear"});
_mainDisplay.visible=false;
_galleryLayer.visible=false;

switch (mcName) {

case "Home" :
Tweener.addTween(_homefoto, {alpha:1, time:.5,delay:.1, transition:"linear"});
break;
case "Portofolio" :
addGallery();
Tweener.addTween(_GalleryMenu, {alpha:1, time:.5,delay:.1, transition:"linear"});
Tweener.addTween(_Gallery, {alpha:1, time:.5,delay:.1, transition:"linear"});
break;
case "Biografie" :
_mainDisplay.visible=true;
_mainDisplay.text=p;
break;
case "Contact" :
Tweener.addTween(_entireForm, {alpha:1, time:.5,delay:.1, transition:"linear"});
//setChildIndex(_entireForm,numChildren - 1);
break;
case "Links" :
_mainDisplay.visible=true;
//_bottommenu.actieveButton.btninactive(e);
_mainDisplay.text=l;
//_menu.actieveButton.btninactive(e);
break;
}
}

private function onMenuClick(e:MouseEvent):void {
var i:String=e.target.id;
var btnName:String=_menu._btnLabels[i];
var newAddress:String="/"+btnName+"/";
SWFAddress.setValue(newAddress);
var p=replacelinebreaks(_contentList[e.target.id].toString());

Tweener.addTween(_homefoto, {alpha:0, time:.5,delay:.1, transition:"linear"});
Tweener.addTween(_GalleryMenu, {alpha:0, time:.5,delay:.1, transition:"linear"});
Tweener.addTween(_Gallery, {alpha:0, time:.5,delay:.1, transition:"linear"});
Tweener.addTween(_entireForm, {alpha:0, time:.5,delay:.1, transition:"linear"});
_mainDisplay.visible=false;
_galleryLayer.visible=false;

switch (i) {
case "0" :
Tweener.addTween(_homefoto, {alpha:1, time:.5,delay:.1, transition:"linear"});
break;
case "1" :
addGallery();
Tweener.addTween(_GalleryMenu, {alpha:1, time:.5,delay:.1, transition:"linear"});
Tweener.addTween(_Gallery, {alpha:1, time:.5,delay:.1, transition:"linear"});
break;
case "2" :
_mainDisplay.visible=true;
_mainDisplay.text=p;
break;
case "3" :

Tweener.addTween(_entireForm, {alpha:1, time:.5,delay:.1, transition:"linear"});
//setChildIndex(_entireForm,numChildren - 1);
break;
case "4" :
_mainDisplay.visible=true;
//_bottommenu.actieveButton.btninactive(e);
_mainDisplay.text=p;
//_menu.actieveButton.btninactive(e);
break;
}
}


[edit] Ik denk dat ik het toch anders ga doen ,, in mijn menu click button ga ik alle tweens voor alle buttons in aparte functies zetten. Dat kan ik wel mgv een switvh statement de buttonclick simuleren. Ik denk dat dat is wat jij bedoeld

bremskie
%Europe/Berlin %501 %2010, 13:02
Dit is het nu geworden


private function handleSWFAddress(event:SWFAddressEvent):void {

var link:String=event.value;
var mcName:String=link;
mcName=mcName.replace(/\//g,"");
SWFAddress.setTitle(formatTitle(mcName));

invisibleobject();

switch (mcName) {
case "Home" :
homeBtn();
break;
case "Portofolio" :
galleryBtn();
break;
case "Biografie" :
bioBtn();
break;
case "Contact" :
contactBtn();
//setChildIndex(_entireForm,numChildren - 1);
break;
case "Links" :
linksBtn();
//_menu.actieveButton.btninactive(e);
//_bottommenu.actieveButton.btninactive(e);
break;
}
}

private function onMenuClick(e:MouseEvent):void {
var i:String=e.target.id;
var btnName:String=_menu._btnLabels[i];
var newAddress:String="/"+btnName+"/";
SWFAddress.setValue(newAddress);
var p=replacelinebreaks(_contentList[e.target.id].toString());

invisibleobject();

switch (i) {
case "0" :
homeBtn();
break;
case "1" :
galleryBtn();
break;
case "2" :
bioBtn();
_mainDisplay.text=p;
break;
case "3" :
contactBtn();
//setChildIndex(_entireForm,numChildren - 1);
break;
case "4" :
linksBtn();
_mainDisplay.text=p;
//_menu.actieveButton.btninactive(e);
//_bottommenu.actieveButton.btninactive(e);
break;
}
}

private function invisibleobject():void {

Tweener.addTween(_homefoto, {alpha:0, time:.5,delay:.1, transition:"linear"});
Tweener.addTween(_GalleryMenu, {alpha:0, time:.5,delay:.1, transition:"linear"});
Tweener.addTween(_Gallery, {alpha:0, time:.5,delay:.1, transition:"linear"});
Tweener.addTween(_entireForm, {alpha:0, time:.5,delay:.1, transition:"linear"});
_mainDisplay.visible=false;
_galleryLayer.visible=false;
}

private function homeBtn():void {
Tweener.addTween(_homefoto, {alpha:1, time:.5,delay:.1, transition:"linear"});
}

private function galleryBtn():void {
addGallery();
Tweener.addTween(_GalleryMenu, {alpha:1, time:.5,delay:.1, transition:"linear"});
Tweener.addTween(_Gallery, {alpha:1, time:.5,delay:.1, transition:"linear"});
}

private function bioBtn():void {
_mainDisplay.visible=true;

}

private function contactBtn():void {
Tweener.addTween(_entireForm, {alpha:1, time:.5,delay:.1, transition:"linear"});
}

private function linksBtn():void {
_mainDisplay.visible=true;
}

marcvz
%Europe/Berlin %531 %2010, 13:45
Ziet er goed uit toch.
Volgens mij is je onMenuClick functie wel voor een groot gedeelte overbodig.

Dit kan volgens mij helemaal weg.

var p=replacelinebreaks(_contentList[e.target.id].toString());

invisibleobject();

switch (i) {
case "0" :
homeBtn();
break;
case "1" :
galleryBtn();
break;
case "2" :
bioBtn();
_mainDisplay.text=p;
break;
case "3" :
contactBtn();
//setChildIndex(_entireForm,numChildren - 1);
break;
case "4" :
linksBtn();
_mainDisplay.text=p;
//_menu.actieveButton.btninactive(e);
//_bottommenu.actieveButton.btninactive(e);
break;
}

Misschien dat je die _mainDisplay.text codes nog even in je swfAddress Handler moet verwerken. Maar nu is het dubbel op natuurlijk..
Je veranderd eerst t swfAddress path, met als gevolg dat de juiste pagina zichtbaar gemaakt wordt. En vervolgens doe je dat nog een keer in je onMenuClick..

bremskie
%Europe/Berlin %557 %2010, 14:22
Je heb gelijk , de functies werden 2 x keer opgeroepen. Inmiddels ook de _mainDisplay.text=p; verwerkt in de swf adress handler
Geweldig Marc