![]() |

Çäðàâñòâóéòå, ãîñòü ( Âõîä | Ðåãèñòðàöèÿ )
![]() |
![]() ![]()
Ñîîáùåíèå
#1
|
|
![]() Ìîdåðàòîð ![]() ![]() ![]() ![]() Ãðóïïà: Ïîëüçîâàòåëü Ñîîáùåíèé: 874 Ðåãèñòðàöèÿ: 12.03.2008 Ïîëüçîâàòåëü ¹: 4145 ![]() |
Åñòü êëàññ äîêóìåíòà:
Êîä package { import flash.display.MovieClip; public class Main extends MovieClip { public var myVar:int; public function Main() { myVar = 5; } } } È åñòü äðóãîé êëàññ. Êàê ìíå èç äðóãîãî êëàññà ïîëó÷èòü çíà÷åíèå ñâîéñòâà myVar êëàññà äîêóìåíòà? |
|
|
![]() |
![]()
Ñîîáùåíèå
#2
|
|
Âåòåðàí êîíôåðåíöèè ![]() ![]() ![]() ![]() Ãðóïïà: Flash Zone Team Ñîîáùåíèé: 3912 Ðåãèñòðàöèÿ: 10.03.2005 Èç: Êèåâ Ïîëüçîâàòåëü ¹: 5 ![]() |
Öèòàòà È åñòü äðóãîé êëàññ. Êàê ìíå èç äðóãîãî êëàññà ïîëó÷èòü çíà÷åíèå ñâîéñòâà myVar êëàññà äîêóìåíòà? Ñòàíäàðòíûì äëÿ ÎÎÏ ïóò¸ì - ÷åðåç ìåòîäû êëàññà. Ò.å. â îäíîì êëàññå (Main) òû ñîçäà¸øü ìåòîä äëÿ äîñòóïà ê ñâîéñòâó (myVar), à èç äðóãîãî êëàññà (èç ëþáûõ äðóãèõ êëàññîâ) ê íåìó îáðàùàåøüñÿ. Äîáàâü â êëàññ Main ñëåäóþùèé ìåòîä: Êîä public function getVar() { return myVar; } Ïðè ýòîì ñàìî ñâîéñòâî myVar òû ìîæåøü ñäåëàòü private, à íå public (÷òîáû òîëüêî ÷åðåç ìåòîäû ìîæíî áûëî ê íåìó îáðàòèòüñÿ). Èíà÷å ìîæíî áóäåò íàïðÿìóþ ê ñâîéñòâó îáðàùàòüñÿ. Êîä Main MyObject = new Main(); trace(MyObject.getVar()); // îáðàùåíèå ÷åðåç ìåòîä (ïðè myVar êàê public, òàê è private) trace(MyObject.myVar); // îáðàùåíèå íàïðÿìóþ ê ñâîéñòâó (ïðè myVar êàê public) Ïðè myVar êàê public âîçìîæíî íå òîëüêî ÷òåíèå, íî è çàïèñü íàïðÿìóþ â ñâîéñòâî (MyObject.myVar = 1), à åñëè áû myVar áûë private, òî ýòîãî íåëüçÿ áûëî áû ñäåëàòü (íè ïðî÷èòàòü, íè çàïèñàòü íàïðÿìóþ), è äëÿ çàïèñè íóæíî áûëî áû ñäåëàòü ñîîòâåòñòâóþùèé ìåòîä. |
|
|
![]()
Ñîîáùåíèå
#3
|
|
![]() Ìîdåðàòîð ![]() ![]() ![]() ![]() Ãðóïïà: Ïîëüçîâàòåëü Ñîîáùåíèé: 874 Ðåãèñòðàöèÿ: 12.03.2008 Ïîëüçîâàòåëü ¹: 4145 ![]() |
Âîîáùå ýêçåìïëÿð êëàññà äîêóìåíòà ñîçäà¸òñÿ òîëüêî îäèí ðàç, MustLive. Ìíå íóäíî ïîëó÷èòü èìåííî èç íåãî ýòî ñâîéñòâî.
Òû â êóðñå ÷òî òàêîå êëàññ äîêóìåíòà? Ñîîáùåíèå îòðåäàêòèðîâàë HaWK - 16.10.2010 - 16:30 |
|
|
![]()
Ñîîáùåíèå
#4
|
|
Âåòåðàí êîíôåðåíöèè ![]() ![]() ![]() ![]() Ãðóïïà: Flash Zone Team Ñîîáùåíèé: 3912 Ðåãèñòðàöèÿ: 10.03.2005 Èç: Êèåâ Ïîëüçîâàòåëü ¹: 5 ![]() |
Öèòàòà Âîîáùå ýêçåìïëÿð êëàññà äîêóìåíòà ñîçäà¸òñÿ òîëüêî îäèí ðàç, MustLive. Ìíå íóäíî ïîëó÷èòü èìåííî èç íåãî ýòî ñâîéñòâî. HaWK Íó ðàç ñîçäàëñÿ ó òåáÿ îäèí ðàç ýêçåìïëÿð, òî è ñ÷èòûâàé èç íåãî ñâîéñòâà. Êàê ýòî ñäåëàòü, ÿ îïèñàë âûøå. Êëàññ äîêóìåíòà òû îïèñàë êàê class Main (ò.å. ÿ ïîíÿë, ÷òî ýòî êàêîé-òî òâîé êëàññ). Âîò ÿ è ïðèâ¸ë ïðèìåð êîäà äëÿ ðàáîòû ñ íèì. Åñëè ýòî êàêîé-òî ñòàíäàðòíûé êëàññ (à ñ êëàññàìè AS3 ÿ íå çíàêîì), ïîñòàâëÿåìûé ñ ôëåøåì, òî ïî÷èòàé åãî äîêóìåíòàöèþ èëè èçó÷è èñõîäíèê (åñëè íåò âîçìîæíîñòè/âðåìåíè/æåëàíèÿ ÷èòàòü äîêóìåíòàöèþ), è âîñïîëüçóéñÿ òåìè ñïîñîáàìè, ÷òî ÿ îïèñàë âûøå. È ïðî÷èòàåøü çíà÷åíèå ýòîãî ñâîéñòâà. |
|
|
![]()
Ñîîáùåíèå
#5
|
|
![]() Ìîdåðàòîð ![]() ![]() ![]() ![]() Ãðóïïà: Ïîëüçîâàòåëü Ñîîáùåíèé: 874 Ðåãèñòðàöèÿ: 12.03.2008 Ïîëüçîâàòåëü ¹: 4145 ![]() |
Äà ýòî ìîé êëàññ. È åãî ýêçåìïëÿð ñîçäà¸òñÿ îäèí ðàç (ñàìèì Flash). Âîò êàê ê íåìó îáðàòèòñÿ ÿ íå çíàþ.
|
|
|
![]()
Ñîîáùåíèå
#6
|
|
Âåòåðàí êîíôåðåíöèè ![]() ![]() ![]() ![]() Ãðóïïà: Flash Zone Team Ñîîáùåíèé: 3912 Ðåãèñòðàöèÿ: 10.03.2005 Èç: Êèåâ Ïîëüçîâàòåëü ¹: 5 ![]() |
Öèòàòà È åãî ýêçåìïëÿð ñîçäà¸òñÿ îäèí ðàç (ñàìèì Flash). Âîò êàê ê íåìó îáðàòèòñÿ ÿ íå çíàþ. Îòêóäà òû çíàåøü, ÷òî îí ñîçäà¸òñÿ? Åñëè òû îá ýòîì ÷èòàë â êàêîé-ëèáî äîêóìåíòàöèè, òî òàì è ïðî÷èòàé î òîì, êàê ê äàííîìó ýêçåìïëÿðó îáðàòèòüñÿ. ×òîáû ïðîâåðèòü, ÷òî ôëåø àâòîìàòè÷åñêè ñîçäà¸ò ýêçåìïëÿð êëàññà Main, âîçüìè â êîíñòðóêòîðå êëàññà (function Main()) âûâåäè òðåéñ (çà myVar), ÷òîáû ïîëó÷èòü ðåçóëüòàò â îêíå Output: Êîä myVar = 5; trace(myVar); Åñëè ýòîò ýêçåìïëÿð ñîçäà¸òñÿ (÷òî òû ïðîâåðèøü âûøåïðèâåä¸ííûì êîäîì), òî ó íåãî åñòü èìÿ. Âîò èìÿ ýòîãî ýêçåìïëÿðà òåáå í.á. âûÿñíèòü. È ïî èìåíè îáðàùàòüñÿ ê ñâîéñòâó (îäíèì èç äâóõ ñïîñîáîâ, ÷òî ÿ îïèñàë ðàíåå). |
|
|
![]()
Ñîîáùåíèå
#7
|
|
![]() Ìîdåðàòîð ![]() ![]() ![]() ![]() Ãðóïïà: Ïîëüçîâàòåëü Ñîîáùåíèé: 874 Ðåãèñòðàöèÿ: 12.03.2008 Ïîëüçîâàòåëü ¹: 4145 ![]() |
ML!
Öèòàòà Îòêóäà òû çíàåøü, ÷òî îí ñîçäà¸òñÿ? Åñëè òû îá ýòîì ÷èòàë â êàêîé-ëèáî äîêóìåíòàöèè, òî òàì è ïðî÷èòàé î òîì, êàê ê äàííîìó ýêçåìïëÿðó îáðàòèòüñÿ. Íå íóæíî ÷èòàòü îá ýòîì, îá ýòîì óæå ïîðà çíàòü.  AS3 ñîâñåì äðóãàÿ ñòðóêòóðà. Åñëè äîïóñòèì â AS2 ÿ ìîã íà ðóòå îáúÿâèòü ïåðåìåííóþ è ïîòîì îáðàùàòüñÿ ê íåé ñ ëþáîãî ìåñòà ïðîãðàììû ïðîñòî ÷åðåç _root.myVar, òî â AS3 òàê óæå íå ïîëó÷èòñÿ. _root - òåïåðü ýòî êëàññ äîêóìåíòà è ôèã çíàåò êàê ê íåìó îáðàòèòñÿ èçâíå (ñ äðóãèõ êëàññîâ). Åñëè âíóòðè íåãî ÿ åù¸ ìîãó ÷èòàòü åãî æå ñâîéñòâà, òî èçâíå íå ìîãó. Âîò ìíå è íàäî âûÿñíèòü êàê ýòî äåëàòü, ïîýòîìó ÿ ñîçäàë òåìó. Åñëè áû ìíå ïðîñòî íàäî áûëî ïîëó÷èòü ñâîéñòâî ÿ áû íå ïèñàë çäåñü. Ìíå íàäî ïîëó÷èòü ñâîéñòâî êëàññà äîêóìåíòà (òî áèøü _root) èç äðóãîãî êëàññà. |
|
|
![]()
Ñîîáùåíèå
#8
|
|
![]() Âåòåðàí êîíôåðåíöèè ![]() ![]() ![]() ![]() Ãðóïïà: Ïîëüçîâàòåëü Ñîîáùåíèé: 777 Ðåãèñòðàöèÿ: 27.02.2009 Èç: Moscow Ïîëüçîâàòåëü ¹: 9144 ![]() |
|
|
|
![]()
Ñîîáùåíèå
#9
|
|
![]() Ìîdåðàòîð ![]() ![]() ![]() ![]() Ãðóïïà: Ïîëüçîâàòåëü Ñîîáùåíèé: 874 Ðåãèñòðàöèÿ: 12.03.2008 Ïîëüçîâàòåëü ¹: 4145 ![]() |
Ëàäíî, ÿ â êóðñå ýòîãî. Íî ïî÷åìó êîãäà ÿ ïèøó â äðóãîì êëàññå:
Êîä trace(root.myVar); Ïîëó÷àþ: 1120: Îáðàùåíèå íåñóùåñòâóþùåãî ñâîéñòâà root. ? ? ? |
|
|
![]()
Ñîîáùåíèå
#10
|
|
![]() Âåòåðàí êîíôåðåíöèè ![]() ![]() ![]() ![]() Ãðóïïà: Ïîëüçîâàòåëü Ñîîáùåíèé: 777 Ðåãèñòðàöèÿ: 27.02.2009 Èç: Moscow Ïîëüçîâàòåëü ¹: 9144 ![]() |
À â äðóãîì êëàññå âîîáùå ìîæåò íå áûòü ñâîéñòâà root, åñëè ýòî íå ïîòîìîê DisplayObject, ëèáî îíî ìîæåò áûòü ðàâíûì null.
|
|
|
![]()
Ñîîáùåíèå
#11
|
|
![]() Ìîdåðàòîð ![]() ![]() ![]() ![]() Ãðóïïà: Ïîëüçîâàòåëü Ñîîáùåíèé: 874 Ðåãèñòðàöèÿ: 12.03.2008 Ïîëüçîâàòåëü ¹: 4145 ![]() |
À êàê îáðàòèòñÿ ê ñâîéñòâó ýêçåìïëÿðà êëàññà äîêóìåíòà èç äðóãîãî êëàññà?
|
|
|
![]()
Ñîîáùåíèå
#12
|
|
![]() Âåòåðàí êîíôåðåíöèè ![]() ![]() ![]() ![]() Ãðóïïà: Ïîëüçîâàòåëü Ñîîáùåíèé: 777 Ðåãèñòðàöèÿ: 27.02.2009 Èç: Moscow Ïîëüçîâàòåëü ¹: 9144 ![]() |
Ïåðåäàòü â ýòîò äðóãîé êëàññ ññûëêó íà ñåáÿ ïðè ïîñòðîåíèè, íàïðèìåð.
Òèïà: // Èç êëàññà Äîêóìåíòà // var otherClass:OtherClass=new OtherClass(this) |
|
|
![]()
Ñîîáùåíèå
#13
|
|
![]() Ìîdåðàòîð ![]() ![]() ![]() ![]() Ãðóïïà: Ïîëüçîâàòåëü Ñîîáùåíèé: 874 Ðåãèñòðàöèÿ: 12.03.2008 Ïîëüçîâàòåëü ¹: 4145 ![]() |
ýýý.... è êàê âñ¸ ýòî äîëæíî ðàáîòàòü?
Êàê ìíå ïîòîì îáðàùàòüñÿ èç ýòîãî äðóãîãî êëàññà? Ñîîáùåíèå îòðåäàêòèðîâàë HaWK - 18.10.2010 - 12:38 |
|
|
![]()
Ñîîáùåíèå
#14
|
|
![]() Âåòåðàí êîíôåðåíöèè ![]() ![]() ![]() ![]() Ãðóïïà: Ïîëüçîâàòåëü Ñîîáùåíèé: 777 Ðåãèñòðàöèÿ: 27.02.2009 Èç: Moscow Ïîëüçîâàòåëü ¹: 9144 ![]() |
Êîä package { import flash.display.* public class Main extends Sprite { public const DELTA="qewqw" public function Main(){ var z=new A(this) z.use1() } } } Êîä package { public class A { var pat public function A(par){ pat=par } public function use1(){ trace("ñóïåðêëàññ "+pat.DELTA) } } } Ìîæíî òàê. Ìîæíî â Main ñòàòè÷åñêîå ñâîéñòâî ñäåëàòü ñ ññûëêîé íà ñâîé åäèíñòâåííûé ýêçåìïëÿð. Ìíîãî ñïîñîáîâ. PS Êñòàòè â AS1/2 _root ìîæåò áûòü òàêæå íå åäèíñòâåííûì. |
|
|
![]()
Ñîîáùåíèå
#15
|
|
![]() Ìîdåðàòîð ![]() ![]() ![]() ![]() Ãðóïïà: Ïîëüçîâàòåëü Ñîîáùåíèé: 874 Ðåãèñòðàöèÿ: 12.03.2008 Ïîëüçîâàòåëü ¹: 4145 ![]() |
Âîîáùå ó ìåíÿ êîíñòðóêòîð äðóãîãî êëàññà çàíÿò äðóãèìè ïàðàìåòðàìè, à òóò â êà÷åñòâå ïàðàìåòðà êîíñòðóêòîðó ïåðåäà¸òñÿ ýêçåìïëÿð äîêóìåíòà êëàññà. Âñ¸ òàê çàïóòàííî, ëó÷øå äðóãèå ñïîñîáû
![]() |
|
|
![]()
Ñîîáùåíèå
#16
|
|
![]() Âåòåðàí êîíôåðåíöèè ![]() ![]() ![]() ![]() Ãðóïïà: Ïîëüçîâàòåëü Ñîîáùåíèé: 777 Ðåãèñòðàöèÿ: 27.02.2009 Èç: Moscow Ïîëüçîâàòåëü ¹: 9144 ![]() |
|
|
|
![]()
Ñîîáùåíèå
#17
|
|
![]() Ìîdåðàòîð ![]() ![]() ![]() ![]() Ãðóïïà: Ïîëüçîâàòåëü Ñîîáùåíèé: 874 Ðåãèñòðàöèÿ: 12.03.2008 Ïîëüçîâàòåëü ¹: 4145 ![]() |
ß òàê ïîíÿë ëó÷øå ñäåëàòü òàê:
public static var prop:DisplayObject = this; È ïîòîì îáðàùàòüñÿ â ëþáîì êëàññå: Main.prop.myvar Õîòÿ ÿ åù¸ íå ïðîáîâàë, íî íàäåþñü ñðàáîòàåò |
|
|
![]()
Ñîîáùåíèå
#18
|
|
![]() Ìîdåðàòîð ![]() ![]() ![]() ![]() Ãðóïïà: Ïîëüçîâàòåëü Ñîîáùåíèé: 874 Ðåãèñòðàöèÿ: 12.03.2008 Ïîëüçîâàòåëü ¹: 4145 ![]() |
Äà... íè ôèãà íå ïîëó÷èëîñü.
Âîò: 1042: Êëþ÷åâîå ñëîâî "this" íå ìîæåò èñïîëüçîâàòüñÿ â ñòàòè÷åñêèõ ìåòîäàõ. Îíî ìîæåò èñïîëüçîâàòüñÿ òîëüêî â ìåòîäàõ ýêçåìïëÿðà, â çàêðûòèè ôóíêöèé è â ãëîáàëüíûõ êîäàõ. |
|
|
![]()
Ñîîáùåíèå
#19
|
|
![]() Âåòåðàí êîíôåðåíöèè ![]() ![]() ![]() ![]() Ãðóïïà: Ïîëüçîâàòåëü Ñîîáùåíèé: 777 Ðåãèñòðàöèÿ: 27.02.2009 Èç: Moscow Ïîëüçîâàòåëü ¹: 9144 ![]() |
Äà... íè ôèãà íå ïîëó÷èëîñü. Âîò: 1042: Êëþ÷åâîå ñëîâî "this" íå ìîæåò èñïîëüçîâàòüñÿ â ñòàòè÷åñêèõ ìåòîäàõ. Îíî ìîæåò èñïîëüçîâàòüñÿ òîëüêî â ìåòîäàõ ýêçåìïëÿðà, â çàêðûòèè ôóíêöèé è â ãëîáàëüíûõ êîäàõ. Âñå ïðàâèëüíî, â ñòàòè÷åñêèõ ÌÅÒÎÄÀÕ êàê æå ìîæíî èñïîëüçîâàòü this? Ñòàòè÷åñêèå ìåòîäû è ñâîéñòâà - ýòî ìåòîäû è ñâîéñòâà êëàññà. public static var prop:DisplayObject // ïðîñòî îáúÿâëÿåì à âîò â êîíñòðóêòîðå êëàññà óæå âñòàâèì çíà÷åíèå this: prop=this |
|
|
![]()
Ñîîáùåíèå
#20
|
|
![]() Ìîdåðàòîð ![]() ![]() ![]() ![]() Ãðóïïà: Ïîëüçîâàòåëü Ñîîáùåíèé: 874 Ðåãèñòðàöèÿ: 12.03.2008 Ïîëüçîâàòåëü ¹: 4145 ![]() |
Îøèáî÷êà:
trace(Main.prop.myVar); 1119: Îáðàùåíèå âîçìîæíîãî íåîïðåäåëåííîãî ñâîéñòâà myVar ÷åðåç ññûëêó ñî ñòàòè÷åñêèì òèïîì flash.display:DisplayObject . |
|
|
![]() ![]() |
![]() |
Òåêñòîâàÿ âåðñèÿ | Ñåé÷àñ: 5.11.2010 - 20:10 |