Naprawdę radzę nie używać tego zbyt wiele ... jest bardzo drogi. Adobe musi utworzyć natywną funkcję, aby zwrócić to nam.
Ale teraz ... spróbuj tego:
Musisz spowodować wyraźny przymus je zdobyć! Bo kiedy robisz i wyraźny przymus pojawi się błąd jak poniżej:
TypeError: Error #1034:
Type Coercion failed: cannot convert [email protected] to flash.utils.ByteArray.
pamiętać, że w tym błędzie można dostać to, co chcesz ... do @ 1c49d31. To hash jest jak identyfikator w alokacji pamięci.
Zrobiłem wiele testów. Ten skrót zmienia się po wywołaniu "nowego" (w językach C jest równoważny z [[... alloc] init]), a dla funkcji statycznych i właściwości statycznych alokacja występuje trochę inaczej ... tak czy inaczej ...
Kopię zapasową Flasha polega na tym, że nie mamy bezpośredniego sposobu na uzyskanie tego skrótu bez błędu.
Ale to nie jest duży problem. Wszystko, co potrzebne jest, aby korzystać z niektórych „try” i „złapać” tak:
try
{
ByteArray(anyObjectToKnowItAllocationHash);
}
catch (e:Error)
{
trace(e);
}
i voila! Otrzymasz hash bez wyniku w błędzie! Potem zrobiłem więcej refinated sposób ... Spróbuj tego:
var memoryHash:String;
try
{
FakeClass(anyObjectToKnowItAllocationHash);
}
catch (e:Error)
{
memoryHash = String(e).replace(/.*([@|\$].*?) to .*$/gi, '$1');
}
internal final class FakeClass { }
Trochę wyjaśnienia na ten temat: fakeClass jest, aby upewnić się o tym wygeneruje błąd. Funkcja RegularExpression służy do przechwytywania ostatnich @ ..., które się pojawiają. Ponieważ Obiekty i funkcje generują różne komunikaty o tym błędzie. A $ to złapanie Static Objects, Class i Functions, ponieważ nie mają one "@" w haszowaniu pamięci i różnych stref w pamięci.
Ten mały kod działa tak dobrze dla mnie! Teraz mogę sfinalizować kilka świetnych silników, które wykonuję w tej pracy z zarządzaniem pamięcią, słabymi referencjami i identyfikatorem opartym na pamięci.
Mam nadzieję, że to może ci pomóc.
Do widzenia, i powodzenia, przyjacielu!
ci może chcesz rzucić okiem na to: http://stackoverflow.com/questions/1151627/object-reference-as-string/1153833#1153833, który q uite jaki branden zaproponował ... :) – back2dos
Ah, to wygląda dobrze - dzięki! –