마우스 휠사용 플래시 소스

마우스 휠을 활용한 플래쉬 소스

+ FLA 파일에서 외부 텍스트 문서를 읽어 들여 마우스 휠을 적용

소스

&loadText=done&
&story06=
Array.sortOn()


지원 버전
Flash Player 6; Flash Player 7에서 추가 기능이 추가되었습니다.

구문
my_array.sortOn("fieldName" )
my_array.sortOn("fieldName", option | option |... )
my_array.sortOn( [ "fieldName" , "fieldName" , ... ] )
my_array.sortOn( [ "fieldName" , "fieldName" , ... ] , option | option |... )

중요: 대괄호([])로 표시된 부분은 반드시 코드에 포함시켜야 합니다. 즉, 대괄호는 생략할 수 있는 매개 변수를 나타내는 것이 아닙니다.

매개 변수
fieldName 정렬 값으로 사용할 필드를 Array 객체의 요소에서 식별하는 문자열입니다.

option 기본 정렬 방식을 변경하는 | (비트 OR) 연산자로 구분된 한 개 이상의 문자열입니다. option에 사용할 수 있는 값은 다음과 같습니다.

1 또는 Array.CASEINSENSITIVE
2 또는 Array.DESCENDING
4 또는 Array.UNIQUE
8 또는 Array.RETURNINDEXEDARRAY
16 또는 Array.NUMERIC


아래 “설명” 섹션에서 각각의 옵션에 대해 보다 자세히 설명합니다.

반환값
반환값은 전달하는 매개 변수에 따라 달라집니다.

option에 4 또는 Array.UNIQUE를 지정하고 정렬될 둘 이상의 요소의 정렬 필드가 모두 고유하면 0이 반환되며 배열은 수정되지 않습니다.
option에 8 또는 Array.RETURNINDEXEDARRAY를 지정하면 정렬된 결과가 반영된 배열이 반환되며 배열은 수정되지 않습니다.
이 이외의 경우에는 아무것도 반환되지 않으며 배열은 정렬 순서에 맞게 수정됩니다.


설명
메서드; 배열에 있는 하나 이상의 필드에 따라 배열의 요소를 정렬합니다. 복수의 fieldName 매개 변수를 전달하는 경우, 첫 번째 필드는 기본 정렬 필드를 나타내며 두 번째 필드는 그 다음 정렬 필드를 나타냅니다. 이와 같이 매개 변수 순서에 따라 정렬 필드 순위가 지정됩니다. Flash에서는 ASCII(유니코드) 값에 따라 정렬을 수행합니다. 비교될 요소 중 어느 요소에도 fieldName 매개 변수에 지정된 필드가 포함되어 있지 않으면 undefined 필드인 것으로 간주되며 특정 순서 없이 정렬된 배열에 연속적으로 요소들이 배치됩니다.

기본적으로, Array.sortOn()은 다음과 같이 동작합니다.

-정렬은 대소문자를 구분합니다(Z 다음에 a가 옵니다).
-정렬은 오름차순입니다(a 다음에 b가 옵니다).
-배열은 정렬 순서에 따라 수정됩니다. 고유한 정렬 필드를 가진 복수의 요소들은 특정 순서 없이 정렬된 배열에 연속적으로 배치됩니다.
-숫자 필드는 문자열처럼 취급되어 정렬됩니다. 따라서, “1”은 “9”보다 낮은 문자이기 때문에 100이 99보다 먼저 나옵니다.
-반환값은 없습니다.


option 플래그를 사용하여 이 기본 동작을 바꿀 수 있습니다. 다음 예제는 다양한 형태의 option 플래그를 사용합니다. 간단한 배열(예: 단 하나의 필드만 있는 배열)을 정렬하거나 options 매개 변수가 지원하지 않는 정렬 순서를 지정하려면 Array.sort()를 사용합니다.

복수의 숫자 유형 플래그를 전달하려면 이들을 |(비트 OR) 연산자로 구분하거나 플래그의 값을 모두 더합니다. 다음 코드는 숫자 내림차순을 지정하는 세 가지 다른 방법을 보여줍니다.

my_Array.sortOn(someFieldName, 2 | 16);
my_Array.sortOn(someFieldName, 18);
my_Array.sortOn(someFieldName, Array.DESCENDING | Array.NUMERIC);

플래그를 숫자 형태(예: 2)로 사용하지 않고 문자열 형태(예: DESCENDING)로 사용하면 코드 힌트(코드 힌트 사용 참조)를 사용할 수 있습니다.

다음과 같은 배열을 생각해 보십시오.

var my_array:Array = new Array();
my_array.push({password: "Bob", age:29});
my_array.push({password: "abcd", age:3});
my_array.push({password: "barb", age:35});
my_array.push({password: "catchy", age:4});

password 필드에 기본 정렬을 수행하면 다음과 같은 결과를 얻게 됩니다.

my_array.sortOn("password")
// Bob
// abcd
// barb
// catchy

password 필드에 대소문자를 구분하지 않은 정렬을 수행하면 다음과 같은 결과를 얻게 됩니다.

my_array.sortOn("password", Array.CASEINSENSITIVE)
// abcd
// barb
// Bob
// catchy

password 필드에 대소문자를 구분하지 않고 내림차순 정렬을 수행하면 다음과 같은 결과를 얻게 됩니다.

my_array.sortOn("password", 1|2)
// catchy
// Bob
// barb
// abcd

age 필드에 기본 정렬을 수행하면 다음과 같은 결과를 얻게 됩니다.

my_array.sortOn("age")
// 29
// 3
// 35
// 4

age 필드에 숫자 정렬을 수행하면 다음과 같은 결과를 얻게 됩니다.

my_array.sortOn("age", 16)
// 3
// 4
// 29
// 35

age 필드에 내림차순 숫자 정렬을 수행하면 다음과 같은 결과를 얻게 됩니다.

my_array.sortOn("age", 18)
// 35
// 29
// 4
// 3

정렬을 수행하면 배열의 요소가 다음과 같이 변경됩니다.

// Before sorting
// my_array[0].age = 29;
// my_array[1].age = 3;
// my_array[2].age = 35;
// my_array[3].age = 4;

// After any sort that doesn’t pass a value of 8 for option
my_array.sortOn("age", Array.NUMERIC);
// my_array[0].age = 3;
// my_array[1].age = 4;
// my_array[2].age = 29;
// my_array[3].age = 35;

인덱스 배열을 반환하는 정렬을 수행하면 배열의 요소가 변경되지 않습니다.

// Before sorting
// my_array[0].age = 29;
// my_array[1].age = 3;
// my_array[2].age = 35;
// my_array[3].age = 4;

// After a sort that returns an array containing index values
// Note that the original array is unchanged.
// You can then use the returned array to display sorted information
// without modifying the original array.
var indexArray:Array = my_array.sortOn("age", Array.RETURNINDEXEDARRAY);
// my_array[0].age = 29;
// my_array[1].age = 3;
// my_array[2].age = 35;
// my_array[3].age = 4;

예제
이 예제는 새 배열을 만들고 name과 city 필드에 따라 정렬합니다. 첫 번째 정렬은 name을 첫 번째 정렬 값으로 사용하고 city를 두 번째 값으로 사용합니다. 두 번째 정렬은 city를 첫 번째 정렬 값으로 사용하고 name을 두 번째 값으로 사용합니다.

var rec_array = new Array();
rec_array.push( { name: "john", city: "omaha", zip: 68144 } );
rec_array.push( { name: "john", city: "kansas city", zip: 72345 } );
rec_array.push( { name: "bob", city: "omaha", zip: 94010 } );
for(i=0; i trace(rec_array[i].name + ", " + rec_array[i].city);
}
// results in
// john, omaha
// john, kansas city
// bob, omaha

rec_array.sortOn( [ "name", "city" ]);
for(i=0; i trace(rec_array[i].name + ", " + rec_array[i].city);
}
// results in
// bob, omaha
// john, kansas city
// john, omaha

rec_array.sortOn( ["city", "name" ]);
for(i=0; i trace(rec_array[i].name + ", " + rec_array[i].city);
}
// results in
// john, kansas city
// bob, omaha
// john, omaha

다운로드

마우스 휠.jpg (74KB)


wheelScroll(2).zip (41.6KB)

의견 0 자료등록      목록