2013-09-04 6 views
1

SWF 파일 형식 사양 버전 19에서는 MATRIX 레코드의 배율 값이 FB로 저장되며, 사양에 다른 곳에서는 FB가 32 비트 16.16 고정 소수점 값이지만, 몇 비트를 사용하는지 값을 저장하고 예제에서는 16.16 값이 아니라 3.16 값입니다.swf 파일의 고정 소수점 비트 값은 어떻게 작동합니까?

  • 동시에 32 비트 16.16 값과 19 비트 3.16 값이 될 수 있습니까?
  • Flash Player는 3.16, 4.15, 5.14, X.X 값을 어떻게 알 수 있습니까?
  • FB의 형식은 정확히 무엇입니까?

이미 컴파일 된 SWF 파일에 스프라이트를 삽입하려는 이유를 알고 싶습니다. 이미 스프라이트에서 PlaceObject 태그를 한 번 사용한 적이 있지만 이제는 크기를 줄여야하는 이미지가 있습니다. 이는 MATRIX 레코드에서도 수행되지만 처음에는 다른 이미지가 이미 있기 때문에 FB가 필요하지 않았습니다. 올바른 척도.

편집 : 나는 Sothink의 SWF 새로운 스프라이트를 만들 수 있다면 그것이 내가 어도비 플래시 CS를 사용에서 스프라이트와 간단한 SWF 파일을 만들려고합니다 작동하지 않을 경우, 신속한 내일 시도거야 6 DefineSprite 태그를 다른 SWF 파일에 복사합니다. 누군가가 대답하면 먼저 Sothink SWF Quicker로 시도하기 전에 16 진수 편집기로 스케일 작업을 시도합니다.

edit2 : SWF를 가져올 때 Sothink SWF Quicker가 충돌합니다. 작성하려고하는 SWF 파일에서 태그를 복사해도 작동하지 않으면 PlaceObject 태그로 배치하려는 이미지를 삭제 한 다음 크기를 다시 삽입하십시오.

edit3 : Flash에서 DefineSprite 태그를 사용하는 방법을 모르겠으므로 DefineBitsLossless2 태그에 이미지를 축소하여 추가했습니다.이 이미지는 스프라이트에 사용됩니다. 이제는 FB를 더 이상 필요로하지 않지만 어떻게 작동 하는지를 알면 좋을 것입니다. 누군가가 알고 있으면 대답하십시오.

답변

1

매트릭스의 기록은 다음과 같이 시작 :

HasScale UB[1] 
NScaleBits If HasScale=1, UB[5] 
ScaleX  If HasScale=1, FB[NScaleBits] 
ScaleY  If HasScale=1, FB[NScaleBits] 
... 

FB [NScaleBits] 참으로 고정 소수점 값되지만, 반드시 16.16 - 모든 것이 NScaleBits 내려 온다 (그래서 일반 고정 소수점에서 다르다 숫자는 항상 16.16).

매트릭스의 경우와 같이 사용되는 비트 수는 미리 고정되어 있으므로 플래시 플레이어 은 단지을 알고 있습니다.

예를 들어, 부호있는 숫자 "2"(3 + 16 = 19)를 다시 나타 내기 위해 최소 3 비트가 필요하기 때문에,이 경우 덱스의 0x28000이면 NScaleBits가 19가됩니다.

나는 이것이 오래된 질문이라는 것을 알고있다. 그래도 누군가 내가 그랬던 것처럼 그것에 비틀 거릴 수 있습니다.

+0

오래전에 어떻게 작동하는지 알았지 만, 어쨌든 좋은 대답이기 때문에 받아 들였습니다. – user2746752