쉬워야합니다. 나는 물건이있다. 나는 그것을 수정하기를 원하지만, 나는 그 전에 내가 갈 수있는 복사본을 저장하고 싶다. 나는 copy = original으로 설정하려고 시도했으나 원본의 속성을 수정하면 사본에도 변경 사항이 표시됩니다. 나는 당신이 할당 할 때 actionscript에서, 그것은 단지 원래의 객체에 대한 참조를 저장하기 때문이라고 가정하고있다. 그래서 나중에 사용하기 위해 원본 객체의 복사본을 저장하는 가장 좋은 방법은 무엇입니까?Actionscript - 참조없는 변수 할당?
답변
var newObj:Object = Object(ObjectUtil.copy(oldObj));
"지정된 Object를 복사하고이 복사본에 대한 참조를 반환합니다. 복사는 네이티브 직렬화 기법을 사용한다. 이것은 복사 중에 custom 직렬화가 준수되는 것을 의미합니다.이 방법은 설계
을 컬렉션의 요소와 같은 데이터 객체를 복사하는 데 사용되며 TextInput 컨트롤과 같은 UIComponent 객체를 복사하기위한 것이 아닙니다. 특정 UIComponent 객체의 복사본을 만들려면 구성 요소의 하위 클래스를 만들고 clone() 메서드 또는 다른 메서드를 사용하여 복사를 수행 할 수 있습니다. "
http://livedocs.adobe.com/flex/3/langref/mx/utils/ObjectUtil.html#copy()
// duplicate any given Object (not MCs)
Object.prototype.copy = function()
{
ASSetPropFlags(Object.prototype,["copy"],1);
var _t = new this.__proto__.constructor(this) //
for(var i in this){
_t[i] = this[i].copy()
}
return _t
};
사용
x = ["1","2","3",[4,5],[{a:1,b:2}]]
y = x.copy()
y[0] = 0
y[3][0]="d"
trace(x)
trace(y)
뭘 찾는 것은보다는 참조로 전달하는 개체의 전체 복사본입니다.
http://www.kirupa.com/forum/showthread.php?p=1897368
function clone(source:Object):* {
var copier:ByteArray = new ByteArray();
copier.writeObject(source);
copier.position = 0;
return(copier.readObject());
}
당신은 다음과 같이 사용합니다 :
newObjectCopy = clone(originalObject);
건배 나는 AS3의 새로운 ByteArray 클래스를 사용하여 여기에 대한 답을 발견!
직렬화하기 전에 클래스 별칭을 등록하면 비 직렬화 한 후에 올바른 클래스에 개체를 유지할 수 있습니다. flash.net.registerClassAlias를 참조하십시오. – preaction
- 1. 변수 할당
- 2. actionscript : 정의되지 않은 공용 변수?
- 3. ActionScript 매개 변수 필터링
- 4. ActionScript 3.0의 동적 변수
- 5. 변수 메모리 할당
- 6. DetailsView에 세션 변수 할당
- 7. 할당 변수 [모범 사례?]
- 8. 인스턴스 변수 할당?
- 9. 스플릿에서 변수 할당
- 10. 메이플 13 변수 할당
- 11. lua - 변수 할당 할당하기
- 12. 유닉스 : 명령에 변수 할당
- 13. iPhone : 인스턴스 변수 재 할당 = 할당 취소?
- 14. actionscript 2.0의 전역 변수 읽기
- 15. 배열에서 변수 만들기 ActionScript 3
- 16. .net의 정적 변수 할당 시간
- 17. PHP 클래스 변수 재 할당
- 18. Ruby : Object.send를 사용하여 변수 할당
- 19. 동적 언어 및 변수 할당
- 20. 변수 할당 및 결과 표시
- 21. 중첩 루프 질문에서 변수 할당
- 22. 문자열 할당 및 인스턴스 변수
- 23. Objective-C 멤버 변수 할당?
- 24. 스팅 데이터를 기반으로 변수 할당
- 25. 변수 자체를 할당 할 수있는 할당 문의 효율성 문제
- 26. mysql 변수 할당 : 강제로 할당 순서를 지정하는 방법?
- 27. 동적 변수 이름 설정 ActionScript 3.0에서
- 28. ActionScript 플래시 사전 정의 된 전역 변수
- 29. actionscript 3 변수 유형을 확인 하시겠습니까?
- 30. 플래시에서 클릭시 전체 변수 증가 actionscript 3
이 끔찍한 솔루션이며, 모든 객체는 단지 비트 복잡한 제대로 복사되지 않습니다. 또한 Object 프로토 타입에 추가하는 것은 좋지 않습니다. 나는 심지어 프로토 타입에 아무 것도 추가하는 것이 나쁜 습관이라고 말하기까지 갈 것이다. 그것은 유물보다 더 유물이다. –