p.의 공유 라이브러리란 무엇입니까? 플래시 공유 라이브러리. 정적 및 동적 연결 비교

알고 계셨나요? 사고실험, 게단켄 실험이란?
이것은 존재하지 않는 실천이고, 초자연적인 경험이며, 실제로 존재하지 않는 것에 대한 상상이다. 사고 실험은 깨어있는 꿈과 같습니다. 그들은 괴물을 낳습니다. 가설에 대한 실험적 테스트인 물리적 실험과 달리 '사고 실험'은 실험적 테스트를 실제로 테스트하지 않은 원하는 결론으로 ​​마술처럼 대체하고, 입증되지 않은 전제를 입증된 전제로 사용하여 실제로 논리 자체를 위반하는 논리적 구성을 조작합니다. 즉, 대체에 의한 것입니다. 따라서 "사고 실험" 신청자의 주요 임무는 실제 물리적 실험을 "인형"으로 대체하여 청취자 또는 독자를 속이는 것입니다. 즉, 물리적 검증 자체가 없는 가석방에 대한 가상의 추론입니다.
상상의 “사고 실험”으로 물리학을 채우는 것은 터무니없고, 초현실적이며, 혼란스러운 세계 그림의 출현으로 이어졌습니다. 실제 연구자는 이러한 "사탕 포장지"를 실제 값과 구별해야 합니다.

상대주의자와 실증주의자는 "사고 실험"이 이론의 일관성을 테스트하는 데 매우 유용한 도구(우리 마음에서도 발생함)라고 주장합니다. 모든 검증은 검증 대상과 무관한 출처에 의해서만 수행될 수 있기 때문에 그들은 사람들을 속입니다. 가설 신청자 자신이 자신의 진술을 테스트할 수는 없습니다. 왜냐하면 이 진술 자체의 이유는 신청자가 볼 수 있는 진술에 모순이 없기 때문입니다.

우리는 과학과 여론을 통제하는 일종의 종교로 변한 SRT와 GTR의 예에서 이를 볼 수 있습니다. 모순되는 사실은 아무리 많아도 아인슈타인의 공식을 극복할 수 없습니다. "사실이 이론과 일치하지 않으면 사실을 바꾸십시오."(다른 버전에서는 "사실이 이론과 일치하지 않습니까? - 사실이 훨씬 더 나쁩니다." ").

"사고 실험"이 주장할 수 있는 최대치는 지원자 자신의 논리(종종 결코 참이 아닌 경우가 많음)의 틀 내에서 가설의 내부 일관성일 뿐입니다. 이는 관행 준수 여부를 확인하지 않습니다. 실제 검증은 실제 물리적 실험에서만 가능합니다.

실험은 생각을 다듬는 것이 아니라 생각을 시험하는 것이기 때문에 실험이다. 일관된 생각은 그 자체를 검증할 수 없습니다. 이는 쿠르트 괴델(Kurt Gödel)에 의해 입증되었습니다.

공유 라이브러리를 사용하면 포함된 기호를 영화 라이브러리에 복사할 필요 없이 여러 영화에서 사용할 수 있습니다. 이 때문에 공유 라이브러리 객체가 호출됩니다. 자원(자산). 이 경우 공유 라이브러리는 외부 파일로 사용되며 생성(또는 편집)된 동영상에는 추가되지 않습니다.

예를 들어 다음과 같은 경우에는 공유 라이브러리를 사용하는 것이 좋습니다.

  • 사이트의 여러 페이지에서 동일한 사운드트랙을 사용할 때
  • 사이트의 여러 페이지에서 텍스트 글꼴 문자를 공유할 때
  • 영화의 여러 장면이나 여러 영화에 걸쳐 사용되는 애니메이션 요소에 대해 단일 소스를 제공해야 하는 경우
  • 변경 사항을 더 쉽게 제어할 수 있도록 중앙 리소스 라이브러리를 갖고 싶을 때.

Flash MX는 두 가지 유형의 공유 라이브러리를 지원합니다.

  • 실행 시간- 공유 런타임 라이브러리; 이러한 라이브러리에 포함된 기호는 여러 영화에서 공유할 수 있지만 이러한 기호는 원본 영화에서만 직접 편집할 수 있습니다.
  • 작성자 시간- 개발 중에 공유되는 라이브러리 이러한 라이브러리에 포함된 기호는 여러 영화에서 공유할 수 있으며, 라이브러리의 내용은 공동 소유한 영화에서 편집할 수 있습니다.

원격 사이트에서 호스팅되는 영화에서 공유 라이브러리 리소스를 사용하려면 라이브러리의 Flash 파일을 SWF 형식으로 내보내고 웹 사이트에 업로드해야 합니다.

논평

이전 버전의 Flash는 런타임 공유 라이브러리만 지원했습니다.

다음과 같은 공유 라이브러리를 만들려면 실행 시간필요한:

  1. 별도의 영화에서 리소스(포함된 캐릭터)를 결정합니다.
  2. 공유 캐릭터 내보내기를 허용합니다.
  3. 라이브러리가 호스팅될 사이트의 URL을 지정합니다.
  4. 이 라이브러리가 포함된 Flash 파일을 SWF 형식으로 내보내고 웹사이트에 업로드하세요.

공유 라이브러리 기호를 사용하려면 실행 시간다른 영화("공동 소유자")에서는 각 영화의 공유 기호에 대한 링크를 만들어야 합니다.

이제 위에 나열된 단계를 더 자세히 살펴보겠습니다.

공유 라이브러리를 만든 후에는 여기에 포함된 기호를 다른 동영상으로 내보낼 수 있도록 지정해야 합니다. 이렇게 하려면 다음을 수행해야 합니다.

  1. "분리 가능"하게 만들려는 기호를 목록에서 선택하십시오.
  2. 기호의 상황에 맞는 메뉴에서 명령을 선택합니다. 연결(제본).
  3. 열리는 대화 상자에서 기호 연결 속성(심볼 바인딩 매개변수), 그림. 10.12, 체크박스를 선택하세요. 런타임 공유를 위해 내보내기(런타임에 내보내기 허용)
  4. 텍스트 필드 식별자공동 소유자 영화로 내보낼 기호의 이름(식별자)을 입력합니다. 필드의 기본값은 기호의 라이브러리 이름이지만 공백이 포함되어 있으면 제거하십시오.
  5. 텍스트 필드 URL소스 동영상(즉, 공유 라이브러리 SWF 파일)의 인터넷 주소를 입력합니다.
  6. 내보낸 기호를 공동 소유자 동영상의 첫 번째 프레임에서 직접 사용해야 하는 경우 첫 번째 프레임으로 내보냅니다.
  7. 내보낸 심볼을 ActionScript 스크립트에서 사용할 수 있도록 하려면 ActionScript용으로 내보냅니다.

쌀. 10.12.공유 라이브러리 기호 설정 대화 상자

공유 라이브러리 리소스를 사용하려면 실행 시간공동 소유 영화에서는 다음을 수행해야 합니다.

  1. 다음을 선택하여 이 영화의 라이브러리를 엽니다. 창문도서관.
  2. 라이브러리 드롭다운 메뉴에서 다음을 선택하세요. 새로운 기호;결과적으로 대화 상자가 화면에 나타납니다. 새 기호 만들기(새 심볼 만들기), 중앙 부분은 대화 상자와 형식이 유사합니다. 기호 연결 속성(그림 10.13).
  3. 텍스트 필드 식별자공동 소유자 영화로 가져오려는 기호의 이름을 입력합니다.
  4. 텍스트 필드 URL원본 동영상의 인터넷 주소를 입력하세요.

쌀. 10.13.분할 문자 매개변수 설정을 위한 대화 상자

다른 유형의 공유 라이브러리 사용 - 작성자 시간- 편집된 FLA 파일의 심볼 내용을 변경(보다 정확하게는 대체)할 수 있습니다. 기호의 이름은 이미 편집 중인 동영상에 "내재되어" 있다는 점을 명심해야 합니다. 따라서 공유 라이브러리에서 가져온 기호는 이름을 유지하면서 원래 기호를 대체합니다. 가져오는 기호에 중첩된 기호가 포함되어 있으면 해당 기호도 가져옵니다.

"대체"할 기호를 공유 라이브러리의 해당 기호와 연결하려면 다음을 수행해야 합니다.

  1. 편집 중인 파일의 메뉴에서 선택하여 라이브러리 창을 엽니다. 창문도서관.
  2. 기호 목록에서 "대체"할 기호를 선택하고 마우스 오른쪽 버튼으로 클릭한 후 상황에 맞는 메뉴에서 명령을 선택합니다. 속성.
  3. 열리는 대화 상자의 하단에 있습니다. (그림 10.13 참조), 요소 그룹에서 원천(출처) 버튼을 클릭하세요 검색(보기) 및 창에서 윈도우 탐색기원하는 라이브러리가 포함된 FLA 파일을 선택합니다. 결과적으로 화면에 또 다른 창이 나타납니다. 소스 기호 선택(소스 기호 선택), 공유 라이브러리의 모든 기호 목록이 포함되어 있습니다(그림 10.14).


쌀. 10.14.소스 기호 선택 대화 상자

  1. 목록에서 원하는 기호를 선택하고 버튼을 클릭하세요. 좋아요;그러면 창이 닫히고 그룹의 컨트롤 형식이 변경됩니다. 원천(그림 10.15):
    • 확인란을 사용할 수 있게 됩니다. 게시하기 전에 항상 업데이트하세요.(게시하기 전에 항상 업데이트) - 설정된 경우 편집된 영화의 기호는 영화를 게시할 때 공유 라이브러리의 기호로 자동으로 대체됩니다.
    • 텍스트 필드에서 파일공유 라이브러리가 있는 파일의 경로가 나타납니다.
    • 텍스트 필드에서 기호 이름공유 라이브러리의 심볼 이름이 나타납니다.
    • 버튼을 사용할 수 있게 됩니다 상징,클릭하면 대화 상자가 열립니다. 소스 기호 선택그림에 표시됩니다. 10.14.


쌀. 10.15. 체재심볼을 연결한 후 소스 그룹의 컨트롤

논평

영화는 모든 유형의 여러 공유 라이브러리의 리소스를 사용할 수 있습니다.

결론적으로 다른 영화 라이브러리의 콘텐츠를 사용하는 또 다른 방법이 있습니다. 이렇게 하려면 다음이 필요합니다.

  1. 메뉴에서 선택 파일(파일) 메인 창 플래시 명령 라이브러리로 열기(라이브러리로 공개).
  2. 창 사용 윈도우 익스플로러필요한 라이브러리가 포함된 플래시 파일을 지정합니다. 결과적으로 이 라이브러리의 창이 테이블에 열립니다.
  3. 라이브러리 창에서 원하는 기호를 영화 라이브러리로(또는 테이블로 직접) 복사합니다.

공유 및 영구 라이브러리의 콘텐츠와 마찬가지로 이러한 라이브러리의 콘텐츠는 클라이언트 동영상(즉, 해당 리소스를 사용하는 동영상)에서 수정할 수 없습니다.

공유 라이브러리또는 공공 도서관사이에 공유할 파일입니다. 프로그램에서 사용하는 모듈은 프로그램의 단일 실행 파일을 복사할 때 링커에 의해 복사되는 대신 별도의 공유 개체에서 메모리로 로드됩니다.

공유 라이브러리는 정적으로 링크될 수 있습니다. 즉, 실행 파일이 생성될 때 라이브러리 모듈에 대한 참조가 확인되고 메모리가 모듈에 할당됩니다. 그러나 공유 라이브러리 연결은 로드될 때까지 지연되는 경우가 많습니다.

일부 오래된 시스템. 버로스 MCP Multics는 또한 일반 여부에 관계없이 실행 파일에 대해 하나의 형식만 갖습니다. 실행 파일과 동일한 형식의 공유 라이브러리 파일이 있습니다. 여기에는 두 가지 주요 장점이 있습니다. 첫째, 각각에는 두 개가 아닌 하나의 부트로더만 필요합니다(별도의 부트로더를 사용하면 복잡성이 더 커집니다). 둘째, 심볼 테이블이 있는 경우 실행 파일을 공유 라이브러리로 사용할 수도 있습니다. 일반적인 결합 실행 파일 및 공유 라이브러리 형식은 ELF 및 Mach-O(둘 다 Unix) 및 (Windows)입니다.

16비트 Windows와 같은 일부 이전 환경에서는 MPE을 위한 HP 3000, 공유 라이브러리 코드는 스택 기반(로컬) 데이터만 허용했거나 공유 라이브러리 코드에 기타 중요한 제한 사항이 적용되었습니다.

공유 메모리

라이브러리 코드는 디스크뿐만 아니라 프로세스와 메모리에서도 공유될 수 있습니다. 가상 메모리를 사용하는 경우 프로세스는 다른 프로세스 주소 공간에 매핑된 RAM의 물리적 페이지에서 실행됩니다. 여기에는 장점이 있습니다. 예를 들어, OpenStep 시스템에서 애플리케이션은 크기가 수백 킬로바이트에 불과하고 빠르게 로드되는 경우가 많습니다. 대부분의 코드는 다른 목적을 위해 운영 체제에서 이미 로드한 라이브러리에 있었습니다.

프로그램은 Unix에서와 같이 독립적인 코드를 사용하여 RAM을 공유할 수 있으므로 복잡하지만 유연한 아키텍처가 됩니다. 이는 주소 공간 사전 매핑 및 페이지 예약과 같은 다양한 기술을 통해 각 공유 라이브러리가 공유될 가능성을 높여줍니다. 세 번째 옵션은 단일 레벨 저장소, 사용된 IBM 시스템/38그리고 그의 후계자들.

경우에 따라 서로 다른 버전의 공유 라이브러리가 문제를 일으킬 수 있습니다. 특히 서로 다른 버전의 라이브러리가 동일한 파일 이름을 갖고 시스템에 설치된 서로 다른 응용 프로그램에 사용되며 각각 특정 버전이 필요한 경우 문제가 발생할 수 있습니다. 이 시나리오는 다음과 같이 알려져 있습니다.

공유 라이브러리를 사용하면 포함된 기호를 영화 라이브러리에 복사할 필요 없이 여러 영화에서 사용할 수 있습니다. 이 때문에 공유 라이브러리 객체가 호출됩니다. 자원(자산). 이 경우 공유 라이브러리는 외부 파일로 사용되며 생성(또는 편집)된 동영상에는 추가되지 않습니다.

예를 들어 다음과 같은 경우에는 공유 라이브러리를 사용하는 것이 좋습니다.

  • 사이트의 여러 페이지에서 동일한 사운드트랙을 사용할 때
  • 사이트의 여러 페이지에서 텍스트 글꼴 문자를 공유할 때
  • 영화의 여러 장면이나 여러 영화에 걸쳐 사용되는 애니메이션 요소에 대해 단일 소스를 제공해야 하는 경우
  • 변경 사항을 더 쉽게 제어할 수 있도록 중앙 리소스 라이브러리를 갖고 싶을 때.

Flash MX는 두 가지 유형의 공유 라이브러리를 지원합니다.

  • 실행 시간- 공유 런타임 라이브러리; 이러한 라이브러리에 포함된 기호는 여러 영화에서 공유할 수 있지만 이러한 기호는 원본 영화에서만 직접 편집할 수 있습니다.
  • 작성자 시간- 개발 중에 공유되는 라이브러리 이러한 라이브러리에 포함된 기호는 여러 영화에서 공유할 수 있으며, 라이브러리의 내용은 공동 소유한 영화에서 편집할 수 있습니다.

원격 사이트에서 호스팅되는 영화에서 공유 라이브러리 리소스를 사용하려면 라이브러리의 Flash 파일을 SWF 형식으로 내보내고 웹 사이트에 업로드해야 합니다.

논평
이전 버전의 Flash는 런타임 공유 라이브러리만 지원했습니다.
.

다음과 같은 공유 라이브러리를 만들려면 실행 시간, 필요한:

  1. 별도의 영화에서 리소스(포함된 캐릭터)를 결정합니다.
  2. 공유 캐릭터 내보내기를 허용합니다.
  3. 라이브러리가 호스팅될 사이트의 URL을 지정합니다.
  4. 이 라이브러리가 포함된 Flash 파일을 SWF 형식으로 내보내고 웹사이트에 업로드하세요.

공유 라이브러리 기호를 사용하려면 실행 시간다른 영화("공동 소유자")에서는 각 영화의 공유 기호에 대한 링크를 생성해야 합니다.

이제 위에 나열된 단계를 더 자세히 살펴보겠습니다.

공유 라이브러리를 만든 후에는 여기에 포함된 기호를 다른 동영상으로 내보낼 수 있도록 지정해야 합니다. 이렇게 하려면 다음을 수행해야 합니다.

  1. 목록에서 "공유"하려는 기호를 선택합니다.
  2. 기호의 상황에 맞는 메뉴에서 명령을 선택합니다. 연결(제본).
  3. 열리는 대화 상자에서 기호 연결 속성(심볼 바인딩 매개변수), 그림. 10.12, 체크박스를 선택하세요 런타임 공유를 위해 내보내기(런타임에 내보내기 허용)
  4. 텍스트 필드 식별자공동 소유자 영화로 내보낼 기호의 이름(식별자)을 입력합니다. 필드의 기본값은 기호의 라이브러리 이름이지만 공백이 포함되어 있으면 제거하십시오.
  5. 텍스트 필드 URL소스 동영상(즉, 공유 라이브러리 SWF 파일)의 인터넷 주소를 입력합니다.
  6. 내보낸 기호를 공동 소유자 동영상의 첫 번째 프레임에서 직접 사용해야 하는 경우 첫 번째 프레임으로 내보내기.
  7. 내보낸 심볼을 ActionScript 스크립트에서 사용할 수 있도록 하려면 ActionScript용으로 내보내기.

쌀. 10.12. 공유 라이브러리 기호 설정 대화 상자

공유 라이브러리 리소스를 사용하려면 실행 시간공동 소유 영화에서는 다음을 수행해야 합니다.

  1. 다음을 선택하여 이 영화의 라이브러리를 엽니다. 창문도서관.
  2. 라이브러리 드롭다운 메뉴에서 다음을 선택하세요. 새로운 기호;결과적으로 대화 상자가 화면에 나타납니다. 새 기호 만들기(새 심볼 만들기), 중앙 부분은 대화 상자와 형식이 유사합니다. 기호 연결 속성(그림 10.13).
  3. 텍스트 필드 식별자공동 소유자 영화로 가져오려는 기호의 이름을 입력합니다.
  4. 텍스트 필드 URL원본 동영상의 인터넷 주소를 입력하세요.


쌀. 10.13. 분할 문자 매개변수 설정을 위한 대화 상자

앞서 우리는 기본 및 뱅크 메모리 관리자에 비해 페이지 및 세그먼트 메모리 관리자의 장점 중 하나로 공유 라이브러리를 언급했습니다. 기본 주소 지정을 사용하면 각 프로세스의 이미지는 물리적 주소 공간과 논리적 주소 공간 모두에서 인접한 영역을 차지해야 합니다. 이러한 조건에서는 공유 라이브러리를 구현하는 것이 불가능합니다. 그러나 페이지 주소 지정을 사용하더라도 모든 것이 그렇게 간단하지는 않습니다.

공유 라이브러리 및/또는 DLL(이 경우 차이점은 기본이 아님)의 사용은 로드 시 하나 또는 다른 형태의 어셈블리를 의미합니다. 실행 모듈에는 해결되지 않은 주소 링크와 필요한 라이브러리 이름이 있습니다. 로드되면 이러한 라이브러리가 로드되고 링크가 확인됩니다. 여기서 문제는 라이브러리를 로드할 때 라이브러리를 이동하고 해당 코드와 데이터의 절대 참조를 재구성해야 한다는 것입니다(3장 참조). 라이브러리가 다른 프로세스에서 다른 주소로 구성되면 더 이상 공유되지 않습니다(그림 5.14)! 공유 라이브러리에 다른 라이브러리에 대한 확인되지 않은 링크가 있는 경우 문제는 더욱 악화됩니다. 이동된 링크에 외부 링크가 추가됩니다.

쌀. 5.14. 충돌하는 DLL 매핑 주소

다음 형식의 절대 로드 가능 모듈을 사용하는 이전 Unix 시스템에서 a.out, 공유 라이브러리도 고정 주소로 구성된 절대 모듈 형식으로 제공되었습니다. 각 라이브러리는 자체 주소로 구성되었습니다. 새 라이브러리 공급업체는 시스템 개발자와 이 주소에 동의해야 했습니다. 이것은 매우 비실용적이어서 공유 라이브러리가 거의 없었습니다(특히 OS 배포에 포함된 라이브러리를 포함하지 않는 경우).

이 문제에 대한 더 수용 가능한 솔루션은 OS/2 2.x 및 Win32에서 구현됩니다(이 두 아키텍처는 모두 단일 주소 공간을 가진 시스템 개발입니다). 아이디어는 DLL 로딩을 위한 주소 영역을 할당하고 이 영역을 모든 프로세스의 주소 공간에 매핑하는 것입니다. 따라서 시스템에 로드된 모든 DLL은 모든 사람이 볼 수 있습니다(그림 5.15).



질문이 있으신가요?

오타 신고

편집자에게 전송될 텍스트: