AS2: Deaktivieren von Links in versteckten dynamische Textfelder und MovieClip- Kinder
-
05-07-2019 - |
Frage
Grüße!
Ich arbeite an einer AS2-Website mit Movieclips für Seiten, die Tiefe tauschen, wenn die Navigation angeklickt wird. Textinhalt dynamisch aus einer externen XML-Datei gezogen und per CSS gestylt, mit Links (HTML / CDATA). Mein Problem ist folgendes:
Wenn eine Seite hintereinander über swapDepths()
versteckt ist, HTML-Links innerhalb der versteckten Seite sind noch anklickbare mit den Hand-Cursor. Ich habe versucht, mc.enabled = false auf der übergeordneten Clips Inhalt, aber es hat keinen Einfluss auf die dynamische Textzeichenfolge. Wer weiß, wie CDATA Links mit Actionscript 2 deaktivieren?
Die gleiche Frage gilt für MovieClip- Kinder im Allgemeinen: wie kann man deaktivieren Videoclips innerhalb eines übergeordneten Clips in AS2 ohne Instanznamen harte Kodierung
Vielen Dank im Voraus für alle Anregungen!
Hier ist der Code, wo ich meine Seite Swapping steuern:
// class code.Startup() :
page_arr = new Array(); // references clips laid out in the IDE
page_arr = [
['home', pages.homePage_mc],
['apartments', pages.apartmentsPage_mc],
['building', pages.buildingPage_mc],
['neighborhood', pages.neighborhoodPage_mc],
['press', pages.pressPage_mc],
['team', pages.teamPage_mc],
['retail', pages.retailPage_mc],
['office', pages.officePage_mc],
['contact', pages.contactPage_mc]
]
// class code.Navigation() :
private function showPage(num):Void {
turnOffAllPages();
if(siteFirstRun == true){
prevPageObj = code.Startup.getInstance().page_arr[0][1];
//defaults to homepage, already showing
currPageObj = code.Startup.getInstance().page_arr[num][1];
//sets currPageObj to whatever page was chosen with nav
siteFirstRun = false;
}
else {
if(currPageObj !== prevPageObj){
prevPageObj = currPageObj;
}
currPageObj = code.Startup.getInstance().page_arr[num][1];
}
TweenLite.to(code.Startup.getInstance().page_arr[num][1], .25, {_alpha:100, ease:'easeOutQuad', delay:.25});
if(prevPageObj !== undefined){
currPageObj.swapDepths(code.Startup.getInstance().pages.getNextHighestDepth());
}
currPageObj.copy_mc.enabled = true;
}
// Each page_arr clip contains a 'copy_mc' instance into which XML content is fed. These are what I need to target!
private function turnOffAllPages():Void{
for(i=0; i<code.Startup.getInstance().numPages; i++){
code.Startup.getInstance().page_arr[i][1].copy_mc.enabled = false;
// disable pages to avoid rolling over hidden links
TweenLite.to(code.Startup.getInstance().page_arr[i][1], .2, {_alpha:0, ease:'easeOutQuad'});
}
}
Lösung
Ich würde raten zwei Ansätze, um Ihr Problem:
1) Bewegen Sie den Movieclip, die außerhalb Ihrer Bühne zu einer Off-Screen-Position (d Satz _x und _y etwas versteckt)
2) mit einem Blocker MovieClip- oder Taste oben auf dem verborgenen mc befestigen, damit es sie grundsätzlich von einer Mausereignis halten. Wenn es wieder unhidden wird, entfernen Sie den Blocker MovieClip- oder Taste.