Քո ասածը աշխատումա միայն էն դեպքում երբ դու կոնկրետ գիտես Ֆլաշում եղած օբյեկտների դասվարությունը, իսկ օրինակ էն դեպքում, երբ ասենք քո MovieClip-ի դիրքը փոփոխվում է ընթացքում (օրինակ այն տեղափոխվում է մեկ ուրիշ MovieClip-ի մեջ), ապա քո ասած MovieClip(this.parent.parent....parent) մեթոդը Error կտա:
[main Timeline]-ին դիմելու ամենակարճ ձևը դա root-ն է, ասենք էսպես: MovieClip(root): Օրինակ եթե ասենք [main Timeline]-ում ունես ինչ-որ String, ասենք`
var myString:String="From root!";
ապա Ֆլաշում ցանկացած MovieClip-ից կարող ես այն ստանալ նման կերպ`
var myStringInsideTheMovieClip:String=MovieClip(root).myString;
trace(myStringInsideTheMovieClip); //դուրս կբերի` From root!
Ընդհանրապես ասած ցանկացած օբյեկտից եթե ուզում ես դիմել իրանից կարգով ավելի բարձր գտնվող օբյեկտի ապա, դա արվում է հետևյալ կերպ`
1. գրում ես այնքան անգամ parent, որքան որ կազմում է այդ 2 օբյեկտների մակարդակների տարբերությունը: Ասենք եթե 3 մակարդակ է բարձր, ապա`
parent.parent.parent
2. Այդ բոլոր parent-ները առնում ես փակագծի մեջ և ձախից գրում Օբյեկտի տեսակը: Տեսակը ընդհանուր դեպքում կարող է լինել ցանկացած Class, որը կարող է ունենալ Child-եր, մասնավորապես` լինի MovieClip: Գրեմ մի երկու օրինակ`
MovieClip - MovieClip(parent.parent.parent)
Sprite - Sprite(parent.parent.parent)
DataGrid - DataGrid(parent.parent.parent)
Ակնհայտա, որ նույն ձևով կարող ես ստանալ նաև [main Timeline]-ը, բայց ինչ իմաստ ունի իզուր երկացնելը ու հնարավոր սխալներ ստեղծելը? Իզուր գլխացավանքի բունա, ավելի հեշտա օգտվել root-ից![]()
Էջանիշներ