Adobe® Flash® Platform용 ActionScript® 3.0 참조 설명서
 |  패키지 및 클래스 목록 숨기기 |  패키지  |  클래스  |  새로운 내용  |  색인  |  부록  |  영어로 표시되는 이유
필터: AIR 30.0 이하, Flash Player 30.0 이하, Flash Lite 4
Flex 4.6 이하, Flash Pro CS6 이하
필터 숨기기
flash.net 

NetGroup  - AS3

패키지x

최상위 레벨
adobe.utils
air.desktop
air.net
air.update
air.update.events
coldfusion.air
coldfusion.air.errors
coldfusion.air.events
coldfusion.service
coldfusion.service.events
coldfusion.service.mxml
com.adobe.acm.solutions.authoring.domain.extensions
com.adobe.acm.solutions.ccr.domain.extensions
com.adobe.consulting.pst.vo
com.adobe.dct.component
com.adobe.dct.component.datadictionary
com.adobe.dct.component.datadictionaryElement
com.adobe.dct.component.dataElementsPanel
com.adobe.dct.component.toolbars
com.adobe.dct.event
com.adobe.dct.exp
com.adobe.dct.model
com.adobe.dct.service
com.adobe.dct.service.provider
com.adobe.dct.transfer
com.adobe.dct.util
com.adobe.dct.view
com.adobe.ep.taskmanagement.domain
com.adobe.ep.taskmanagement.event
com.adobe.ep.taskmanagement.filter
com.adobe.ep.taskmanagement.services
com.adobe.ep.taskmanagement.util
com.adobe.ep.ux.attachmentlist.component
com.adobe.ep.ux.attachmentlist.domain
com.adobe.ep.ux.attachmentlist.domain.events
com.adobe.ep.ux.attachmentlist.domain.renderers
com.adobe.ep.ux.attachmentlist.skin
com.adobe.ep.ux.attachmentlist.skin.renderers
com.adobe.ep.ux.content.event
com.adobe.ep.ux.content.factory
com.adobe.ep.ux.content.handlers
com.adobe.ep.ux.content.managers
com.adobe.ep.ux.content.model.asset
com.adobe.ep.ux.content.model.preview
com.adobe.ep.ux.content.model.relation
com.adobe.ep.ux.content.model.search
com.adobe.ep.ux.content.model.toolbar
com.adobe.ep.ux.content.search
com.adobe.ep.ux.content.services
com.adobe.ep.ux.content.services.load
com.adobe.ep.ux.content.services.permissions
com.adobe.ep.ux.content.services.preview
com.adobe.ep.ux.content.services.providers
com.adobe.ep.ux.content.services.query
com.adobe.ep.ux.content.services.relationships
com.adobe.ep.ux.content.services.search.lccontent
com.adobe.ep.ux.content.services.version
com.adobe.ep.ux.content.view
com.adobe.ep.ux.content.view.components.activate
com.adobe.ep.ux.content.view.components.grid
com.adobe.ep.ux.content.view.components.grid.hover
com.adobe.ep.ux.content.view.components.grid.hover.component
com.adobe.ep.ux.content.view.components.grid.renderers
com.adobe.ep.ux.content.view.components.relationships
com.adobe.ep.ux.content.view.components.review
com.adobe.ep.ux.content.view.components.search.renderers
com.adobe.ep.ux.content.view.components.searchpod
com.adobe.ep.ux.content.view.components.toolbar
com.adobe.ep.ux.content.view.components.toolbar.controlRenderers
com.adobe.ep.ux.content.view.components.version
com.adobe.ep.ux.documentsubmit.component
com.adobe.ep.ux.documentsubmit.domain
com.adobe.ep.ux.documentsubmit.skin
com.adobe.ep.ux.taskaction.component
com.adobe.ep.ux.taskaction.domain
com.adobe.ep.ux.taskaction.domain.events
com.adobe.ep.ux.taskaction.skin
com.adobe.ep.ux.taskdetails.component
com.adobe.ep.ux.taskdetails.domain
com.adobe.ep.ux.taskdetails.skin
com.adobe.ep.ux.tasklist.component
com.adobe.ep.ux.tasklist.domain
com.adobe.ep.ux.tasklist.skin
com.adobe.ep.ux.webdocumentviewer.domain
com.adobe.exm.expression
com.adobe.exm.expression.error
com.adobe.exm.expression.event
com.adobe.exm.expression.impl
com.adobe.fiber.runtime.lib
com.adobe.fiber.services
com.adobe.fiber.services.wrapper
com.adobe.fiber.styles
com.adobe.fiber.util
com.adobe.fiber.valueobjects
com.adobe.gravity.binding
com.adobe.gravity.context
com.adobe.gravity.flex.bundleloader
com.adobe.gravity.flex.progress
com.adobe.gravity.flex.serviceloader
com.adobe.gravity.framework
com.adobe.gravity.init
com.adobe.gravity.service.bundleloader
com.adobe.gravity.service.logging
com.adobe.gravity.service.manifest
com.adobe.gravity.service.progress
com.adobe.gravity.tracker
com.adobe.gravity.ui
com.adobe.gravity.utility
com.adobe.gravity.utility.async
com.adobe.gravity.utility.error
com.adobe.gravity.utility.events
com.adobe.gravity.utility.factory
com.adobe.gravity.utility.flex.async
com.adobe.gravity.utility.logging
com.adobe.gravity.utility.message
com.adobe.gravity.utility.sequence
com.adobe.gravity.utility.url
com.adobe.guides.control
com.adobe.guides.domain
com.adobe.guides.i18n
com.adobe.guides.spark.components.skins
com.adobe.guides.spark.components.skins.mx
com.adobe.guides.spark.headers.components
com.adobe.guides.spark.headers.skins
com.adobe.guides.spark.layouts.components
com.adobe.guides.spark.layouts.skins
com.adobe.guides.spark.navigators.components
com.adobe.guides.spark.navigators.renderers
com.adobe.guides.spark.navigators.skins
com.adobe.guides.spark.util
com.adobe.guides.spark.wrappers.components
com.adobe.guides.spark.wrappers.skins
com.adobe.guides.submit
com.adobe.icc.dc.domain
com.adobe.icc.dc.domain.factory
com.adobe.icc.editors.events
com.adobe.icc.editors.handlers
com.adobe.icc.editors.managers
com.adobe.icc.editors.model
com.adobe.icc.editors.model.config
com.adobe.icc.editors.model.el
com.adobe.icc.editors.model.el.operands
com.adobe.icc.editors.model.el.operators
com.adobe.icc.enum
com.adobe.icc.external.dc
com.adobe.icc.obj
com.adobe.icc.services
com.adobe.icc.services.category
com.adobe.icc.services.config
com.adobe.icc.services.download
com.adobe.icc.services.export
com.adobe.icc.services.external
com.adobe.icc.services.formbridge
com.adobe.icc.services.fragmentlayout
com.adobe.icc.services.layout
com.adobe.icc.services.letter
com.adobe.icc.services.locator
com.adobe.icc.services.module
com.adobe.icc.services.render
com.adobe.icc.services.submit
com.adobe.icc.services.user
com.adobe.icc.token
com.adobe.icc.vo
com.adobe.icc.vo.render
com.adobe.icomm.assetplacement.controller
com.adobe.icomm.assetplacement.controller.utils
com.adobe.icomm.assetplacement.data
com.adobe.icomm.assetplacement.model
com.adobe.livecycle.assetmanager.client
com.adobe.livecycle.assetmanager.client.event
com.adobe.livecycle.assetmanager.client.handler
com.adobe.livecycle.assetmanager.client.managers
com.adobe.livecycle.assetmanager.client.model
com.adobe.livecycle.assetmanager.client.model.cms
com.adobe.livecycle.assetmanager.client.service
com.adobe.livecycle.assetmanager.client.service.search
com.adobe.livecycle.assetmanager.client.service.search.cms
com.adobe.livecycle.assetmanager.client.utils
com.adobe.livecycle.content
com.adobe.livecycle.rca.model
com.adobe.livecycle.rca.model.constant
com.adobe.livecycle.rca.model.document
com.adobe.livecycle.rca.model.participant
com.adobe.livecycle.rca.model.reminder
com.adobe.livecycle.rca.model.stage
com.adobe.livecycle.rca.service
com.adobe.livecycle.rca.service.core
com.adobe.livecycle.rca.service.core.delegate
com.adobe.livecycle.rca.service.process
com.adobe.livecycle.rca.service.process.delegate
com.adobe.livecycle.rca.token
com.adobe.livecycle.ria.security.api
com.adobe.livecycle.ria.security.service
com.adobe.mosaic.layouts
com.adobe.mosaic.layouts.dragAndDrop
com.adobe.mosaic.layouts.interfaces
com.adobe.mosaic.mxml
com.adobe.mosaic.om.constants
com.adobe.mosaic.om.events
com.adobe.mosaic.om.impl
com.adobe.mosaic.om.interfaces
com.adobe.mosaic.skinning
com.adobe.mosaic.sparklib.editors
com.adobe.mosaic.sparklib.optionMenu
com.adobe.mosaic.sparklib.scrollableMenu
com.adobe.mosaic.sparklib.scrollableMenu.skins
com.adobe.mosaic.sparklib.tabLayout
com.adobe.mosaic.sparklib.tabLayout.events
com.adobe.mosaic.sparklib.tabLayout.layouts
com.adobe.mosaic.sparklib.tabLayout.skins
com.adobe.mosaic.sparklib.text
com.adobe.mosaic.sparklib.util
com.adobe.solutions.acm.authoring.presentation
com.adobe.solutions.acm.authoring.presentation.actionbar
com.adobe.solutions.acm.authoring.presentation.common
com.adobe.solutions.acm.authoring.presentation.events
com.adobe.solutions.acm.authoring.presentation.fragment
com.adobe.solutions.acm.authoring.presentation.letter
com.adobe.solutions.acm.authoring.presentation.letter.data
com.adobe.solutions.acm.authoring.presentation.preview
com.adobe.solutions.acm.authoring.presentation.rte
com.adobe.solutions.acm.ccr.presentation
com.adobe.solutions.acm.ccr.presentation.contentcapture
com.adobe.solutions.acm.ccr.presentation.contentcapture.events
com.adobe.solutions.acm.ccr.presentation.contentcapture.preview
com.adobe.solutions.acm.ccr.presentation.datacapture
com.adobe.solutions.acm.ccr.presentation.datacapture.renderers
com.adobe.solutions.acm.ccr.presentation.pdf
com.adobe.solutions.exm
com.adobe.solutions.exm.authoring
com.adobe.solutions.exm.authoring.components.controls
com.adobe.solutions.exm.authoring.components.toolbars
com.adobe.solutions.exm.authoring.domain
com.adobe.solutions.exm.authoring.domain.expression
com.adobe.solutions.exm.authoring.domain.impl
com.adobe.solutions.exm.authoring.domain.method
com.adobe.solutions.exm.authoring.domain.variable
com.adobe.solutions.exm.authoring.enum
com.adobe.solutions.exm.authoring.events
com.adobe.solutions.exm.authoring.model
com.adobe.solutions.exm.authoring.renderer
com.adobe.solutions.exm.authoring.view
com.adobe.solutions.exm.expression
com.adobe.solutions.exm.impl
com.adobe.solutions.exm.impl.method
com.adobe.solutions.exm.method
com.adobe.solutions.exm.mock
com.adobe.solutions.exm.mock.method
com.adobe.solutions.exm.runtime
com.adobe.solutions.exm.runtime.impl
com.adobe.solutions.exm.variable
com.adobe.solutions.prm.constant
com.adobe.solutions.prm.domain
com.adobe.solutions.prm.domain.factory
com.adobe.solutions.prm.domain.impl
com.adobe.solutions.prm.domain.manager
com.adobe.solutions.prm.presentation.asset
com.adobe.solutions.prm.presentation.constant
com.adobe.solutions.prm.presentation.document
com.adobe.solutions.prm.presentation.event
com.adobe.solutions.prm.presentation.file
com.adobe.solutions.prm.presentation.project
com.adobe.solutions.prm.presentation.team
com.adobe.solutions.prm.presentation.util
com.adobe.solutions.prm.service
com.adobe.solutions.prm.services.impl
com.adobe.solutions.prm.vo
com.adobe.solutions.rca.constant
com.adobe.solutions.rca.domain
com.adobe.solutions.rca.domain.common
com.adobe.solutions.rca.domain.factory
com.adobe.solutions.rca.domain.impl
com.adobe.solutions.rca.domain.impl.manager
com.adobe.solutions.rca.domain.manager
com.adobe.solutions.rca.presentation
com.adobe.solutions.rca.presentation.comment
com.adobe.solutions.rca.presentation.constant
com.adobe.solutions.rca.presentation.event
com.adobe.solutions.rca.presentation.gantt
com.adobe.solutions.rca.presentation.gantt.ruler
com.adobe.solutions.rca.presentation.template
com.adobe.solutions.rca.presentation.template.audit
com.adobe.solutions.rca.presentation.template.definition
com.adobe.solutions.rca.presentation.template.documents
com.adobe.solutions.rca.presentation.template.stages
com.adobe.solutions.rca.presentation.util
com.adobe.solutions.rca.service
com.adobe.solutions.rca.services.impl
com.adobe.solutions.rca.vo
com.adobe.solutions.rca.vo.um
com.adobe.viewsource
fl.accessibility
fl.containers
fl.controls
fl.controls.dataGridClasses
fl.controls.listClasses
fl.controls.progressBarClasses
fl.core
fl.data
fl.display
fl.events
fl.ik
fl.lang
fl.livepreview
fl.managers
fl.motion
fl.motion.easing
fl.rsl
fl.text
fl.transitions
fl.transitions.easing
fl.video
flash.accessibility
flash.concurrent
flash.crypto
flash.data
flash.desktop
flash.display
flash.display3D
flash.display3D.textures
flash.errors
flash.events
flash.external
flash.filesystem
flash.filters
flash.geom
flash.globalization
flash.html
flash.media
flash.net
flash.net.dns
flash.net.drm
flash.notifications
flash.permissions
flash.printing
flash.profiler
flash.sampler
flash.security
flash.sensors
flash.system
flash.text
flash.text.engine
flash.text.ime
flash.ui
flash.utils
flash.xml
flashx.textLayout
flashx.textLayout.compose
flashx.textLayout.container
flashx.textLayout.conversion
flashx.textLayout.edit
flashx.textLayout.elements
flashx.textLayout.events
flashx.textLayout.factory
flashx.textLayout.formats
flashx.textLayout.operations
flashx.textLayout.utils
flashx.undo
ga.controls
ga.layouts
ga.model
ga.uiComponents
ga.util
ga.views
ga.wrappers
lc.foundation
lc.foundation.domain
lc.foundation.events
lc.foundation.ui
lc.foundation.util
lc.preloader
lc.procmgmt
lc.procmgmt.commands
lc.procmgmt.domain
lc.procmgmt.events
lc.procmgmt.formbridge
lc.procmgmt.impl
lc.procmgmt.ui.attachments
lc.procmgmt.ui.controls
lc.procmgmt.ui.controls.card
lc.procmgmt.ui.controls.renderer
lc.procmgmt.ui.help
lc.procmgmt.ui.layout
lc.procmgmt.ui.presentationmodel
lc.procmgmt.ui.process
lc.procmgmt.ui.search
lc.procmgmt.ui.startpoint
lc.procmgmt.ui.task
lc.procmgmt.ui.task.form
lc.procmgmt.ui.task.form.commands
lc.procmgmt.ui.tracking
mx.accessibility
mx.automation
mx.automation.air
mx.automation.delegates
mx.automation.delegates.advancedDataGrid
mx.automation.delegates.charts
mx.automation.delegates.containers
mx.automation.delegates.controls
mx.automation.delegates.controls.dataGridClasses
mx.automation.delegates.controls.fileSystemClasses
mx.automation.delegates.core
mx.automation.delegates.flashflexkit
mx.automation.events
mx.binding
mx.binding.utils
mx.charts
mx.charts.chartClasses
mx.charts.effects
mx.charts.effects.effectClasses
mx.charts.events
mx.charts.renderers
mx.charts.series
mx.charts.series.items
mx.charts.series.renderData
mx.charts.styles
mx.collections
mx.collections.errors
mx.containers
mx.containers.accordionClasses
mx.containers.dividedBoxClasses
mx.containers.errors
mx.containers.utilityClasses
mx.controls
mx.controls.advancedDataGridClasses
mx.controls.dataGridClasses
mx.controls.listClasses
mx.controls.menuClasses
mx.controls.olapDataGridClasses
mx.controls.scrollClasses
mx.controls.sliderClasses
mx.controls.textClasses
mx.controls.treeClasses
mx.controls.videoClasses
mx.core
mx.core.windowClasses
mx.data
mx.data.crypto
mx.data.errors
mx.data.events
mx.data.messages
mx.data.mxml
mx.data.offline.errors
mx.data.utils
mx.effects
mx.effects.easing
mx.effects.effectClasses
mx.events
mx.filters
mx.flash
mx.formatters
mx.geom
mx.graphics
mx.graphics.codec
mx.graphics.shaderClasses
mx.logging
mx.logging.errors
mx.logging.targets
mx.managers
mx.messaging
mx.messaging.channels
mx.messaging.config
mx.messaging.errors
mx.messaging.events
mx.messaging.management
mx.messaging.messages
mx.modules
mx.netmon
mx.olap
mx.olap.aggregators
mx.preloaders
mx.printing
mx.resources
mx.rpc
mx.rpc.events
mx.rpc.http
mx.rpc.http.mxml
mx.rpc.livecycle
mx.rpc.mxml
mx.rpc.remoting
mx.rpc.remoting.mxml
mx.rpc.soap
mx.rpc.soap.mxml
mx.rpc.wsdl
mx.rpc.xml
mx.skins
mx.skins.halo
mx.skins.spark
mx.skins.wireframe
mx.skins.wireframe.windowChrome
mx.states
mx.styles
mx.utils
mx.validators
org.osmf.containers
org.osmf.display
org.osmf.elements
org.osmf.events
org.osmf.layout
org.osmf.logging
org.osmf.media
org.osmf.metadata
org.osmf.net
org.osmf.net.dvr
org.osmf.net.httpstreaming
org.osmf.net.metrics
org.osmf.net.qos
org.osmf.net.rtmpstreaming
org.osmf.net.rules
org.osmf.traits
org.osmf.utils
spark.accessibility
spark.automation.delegates
spark.automation.delegates.components
spark.automation.delegates.components.gridClasses
spark.automation.delegates.components.mediaClasses
spark.automation.delegates.components.supportClasses
spark.automation.delegates.skins.spark
spark.automation.events
spark.collections
spark.components
spark.components.calendarClasses
spark.components.gridClasses
spark.components.mediaClasses
spark.components.supportClasses
spark.components.windowClasses
spark.core
spark.effects
spark.effects.animation
spark.effects.easing
spark.effects.interpolation
spark.effects.supportClasses
spark.events
spark.filters
spark.formatters
spark.formatters.supportClasses
spark.globalization
spark.globalization.supportClasses
spark.layouts
spark.layouts.supportClasses
spark.managers
spark.modules
spark.preloaders
spark.primitives
spark.primitives.supportClasses
spark.skins
spark.skins.mobile
spark.skins.mobile.supportClasses
spark.skins.spark
spark.skins.spark.mediaClasses.fullScreen
spark.skins.spark.mediaClasses.normal
spark.skins.spark.windowChrome
spark.skins.wireframe
spark.skins.wireframe.mediaClasses
spark.skins.wireframe.mediaClasses.fullScreen
spark.transitions
spark.utils
spark.validators
spark.validators.supportClasses
xd.core.axm.enterprise.view.components
xd.core.axm.enterprise.view.skins
xd.core.axm.view.components
xd.core.axm.view.components.support

언어 요소

전역 상수
전역 함수
연산자
명령문, 키워드 및 지시문
특수 유형 연산자

부록

새로운 내용
컴파일러 오류
컴파일러 경고
런타임 오류
ActionScript 3으로 마이그레이션
지원되는 문자 세트
MXML 전용 태그
모션 XML 요소
Timed Text 태그
사용되지 않는 요소의 목록
액세스 가능성 구현 상수
ActionScript 예제 사용 방법
법적 고지 사항
패키지flash.net
클래스public class NetGroup
상속NetGroup Inheritance EventDispatcher Inheritance Object

언어 버전: ActionScript 3.0
런타임 버전: Flash Player 10.1, AIR 2

NetGroup 클래스의 인스턴스는 RTMFP 그룹의 멤버를 나타냅니다. 이 클래스는 다음 작업에 사용됩니다.
  • 서비스 품질 모니터링. info 속성에는 NetGroupInfo 객체가 포함되어 있으며, 이 객체의 속성이 그룹의 QoS 통계를 제공합니다.
  • 게시. post()를 호출하여 ActionScript 메시지를 그룹의 모든 멤버로 브로드캐스트합니다.
  • 직접 라우팅. sendToNearest(), sendToNeighbor()sendToAllNeighbors()를 호출하여 피어 투 피어 그룹의 특정 멤버로 짧은 데이터 메시지를 전송합니다. 소스와 대상은 직접 연결하지 않아도 됩니다.
  • 객체 복제. addHaveObjects(), removeHaveObjects(), addWantObjects(), removeWantObjects(), writeRequestedObject()denyRequestedObject()를 호출하여 대용량 데이터를 작은 조각으로 분할한 다음 피어 투 피어 그룹의 모든 노드에 복제합니다.

클라이언트측 NetGroup 클래스에서 NetConnection는 다음 이벤트를 전달합니다.

  • NetGroup.Connect.Success
  • NetGroup.Connect.Failed
  • NetGroup.Connect.Rejected

해당 이벤트 객체의 info.group 속성은 이벤트 소스(NetGroup)에 대한 참조를 포함합니다. NetGroup은 다른 모든 이벤트를 전달합니다. 서버측 NetGroup 클래스에서 NetGroup은 모든 이벤트를 전달합니다.

피어 지원 네트워킹을 통한 그룹 사용에 대한 자세한 내용은 Tom Krcha의 Flash Media 및 RTMFP의 사회적 미디어 기능을 참조하십시오.

피어 지원 네트워킹의 기반이 되는 기술 세부 사항은 Adobe 컴퓨터 과학 전문가 Matthew Kaufman의 RTMFP의 Flash Platform에서의 P2P를 참조하십시오.

예제 보기

관련 API 요소



공용 속성
 속성정의 주체
 Inheritedconstructor : Object
지정된 객체 인스턴스의 클래스 객체 또는 생성자 함수에 대한 참조입니다.
Object
  estimatedMemberCount : Number
[읽기 전용] 로컬 인접도를 기반으로 그룹 주소의 고른 분포를 고려하여 그룹의 예상 멤버 수를 지정합니다.
NetGroup
  info : NetGroupInfo
[읽기 전용] NetGroupInfo 객체를 반환하며, 이 객체의 속성이 NetGroup의 RTMFP 피어 투 피어 데이터 전송에 관한 서비스 품질 통계를 제공합니다.
NetGroup
  localCoverageFrom : String
[읽기 전용] 이 노드에서 "가장 가까운" 담당 그룹 주소의 시작 범위를 지정합니다.
NetGroup
  localCoverageTo : String
[읽기 전용] 이 노드에서 "가장 가까운" 담당 그룹 주소의 끝 범위를 지정합니다.
NetGroup
  neighborCount : Number
[읽기 전용] 이 노드가 직접 연결되어 있는 그룹 멤버 수를 지정합니다.
NetGroup
  receiveMode : String
이 노드의 라우팅 수신 모드를 NetGroupReceiveMode 열거형 클래스의 값 중 하나로 지정합니다.
NetGroup
  replicationStrategy : String
객체 복제 가져오기 방법을 지정합니다.
NetGroup
공용 메서드
 메서드정의 주체
  
NetGroup(connection:NetConnection, groupspec:String)
지정된 NetConnection 객체에 NetGroup을 구성하고 이를 groupspec으로 지정된 그룹에 연결합니다.
NetGroup
 Inherited
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
리스너에서 이벤트 알림을 받을 수 있도록 EventDispatcher 객체에 이벤트 리스너 객체를 등록합니다.
EventDispatcher
  
addHaveObjects(startIndex:Number, endIndex:Number):void
이 노드에서 요청을 수행하는 객체로 인접 요소에 보급하는 객체 집합에 startIndex에서 endIndex까지의 객체를 추가합니다.
NetGroup
  
peerID가 그룹의 멤버임을 지정하는 레코드를 수동으로 추가합니다.
NetGroup
  
이 그룹에 있어야 하는 지정된 peerID로 즉시 직접 연결하여 인접 요소를 수동으로 추가합니다.
NetGroup
  
addWantObjects(startIndex:Number, endIndex:Number):void
검색할 객체 집합에 startIndex에서 endIndex까지의 객체를 추가합니다.
NetGroup
  
그룹과의 연결을 끊고 이 NetGroup을 닫습니다.
NetGroup
  
sendToNearest() 메서드와 함께 사용하기에 적합한 그룹 주소로 peerID를 변환합니다.
NetGroup
  
이전에 addHaveObjects()로 보급된 객체의 NetGroup.Replication.Request에서 수신된 요청을 거부합니다.
NetGroup
 Inherited
이벤트를 이벤트 흐름으로 전달합니다.
EventDispatcher
 Inherited
EventDispatcher 객체에 특정 유형의 이벤트에 대한 리스너가 등록되어 있는지 여부를 확인합니다.
EventDispatcher
 Inherited
지정된 속성이 객체에 정의되어 있는지 여부를 나타냅니다.
Object
 Inherited
Object 클래스의 인스턴스가 매개 변수로 지정된 객체의 프로토타입 체인에 있는지 여부를 나타냅니다.
Object
  
post(message:Object):String
그룹의 모든 멤버에게 메시지를 전송합니다.
NetGroup
 Inherited
지정된 속성이 존재하고 열거 가능한지 여부를 나타냅니다.
Object
 Inherited
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
EventDispatcher 객체에서 리스너를 제거합니다.
EventDispatcher
  
removeHaveObjects(startIndex:Number, endIndex:Number):void
이 노드에서 요청을 수행하는 객체로 인접 요소에 보급하는 객체 집합에서 startIndex부터 endIndex까지의 객체를 제거합니다.
NetGroup
  
removeWantObjects(startIndex:Number, endIndex:Number):void
검색할 객체 집합에서 startIndex에서 endIndex까지의 객체를 제거합니다.
NetGroup
  
모든 인접 요소에 메시지를 전송합니다.
NetGroup
  
sendToNearest(message:Object, groupAddress:String):String
지정된 그룹 주소에 가장 가까운 인접 요소(또는 로컬 노드)에 메시지를 전송합니다.
NetGroup
  
sendToNeighbor(message:Object, sendMode:String):String
sendMode 매개 변수에서 지정한 인접 요소에 메시지를 전송합니다.
NetGroup
 Inherited
루프 작업에서 동적 속성을 사용할 수 있는지 여부를 설정합니다.
Object
 Inherited
로캘별 규칙에 따라 서식이 지정된 이 객체의 문자열 표현을 반환합니다.
Object
 Inherited
지정된 객체의 문자열 표현을 반환합니다.
Object
 Inherited
지정된 객체의 프리미티브 값을 반환합니다.
Object
 Inherited
이 EventDispatcher 객체 또는 조상 객체에 지정한 이벤트 유형에 대한 이벤트 리스너가 등록되어 있는지 여부를 확인합니다.
EventDispatcher
  
writeRequestedObject(requestID:int, object:Object):void
이전에 addHaveObjects() 메서드로 보급된 객체의 NetStatusEvent NetGroup.Replication.Request에서 수신한 것으로 요청이 충족됩니다.
NetGroup
이벤트
 이벤트 요약 정의 주체
 Inherited[브로드캐스트 이벤트] Flash Player 또는 AIR 응용 프로그램이 운영 체제 포커스를 얻어 활성화될 때 전달됩니다.EventDispatcher
 Inherited[브로드캐스트 이벤트] Flash Player 또는 AIR 응용 프로그램이 운영 체제 포커스를 잃고 비활성화될 때 전달됩니다.EventDispatcher
  NetGroup 객체가 상태 또는 오류 상황을 보고할 때 전달됩니다.NetGroup
속성 세부 정보

estimatedMemberCount

속성
estimatedMemberCount:Number  [읽기 전용]

언어 버전: ActionScript 3.0
런타임 버전: Flash Player 10.1, AIR 2

로컬 인접도를 기반으로 그룹 주소의 고른 분포를 고려하여 그룹의 예상 멤버 수를 지정합니다.



구현
    public function get estimatedMemberCount():Number

관련 API 요소

info

속성 
info:NetGroupInfo  [읽기 전용]

언어 버전: ActionScript 3.0
런타임 버전: Flash Player 10.1, AIR 2

NetGroupInfo 객체를 반환하며, 이 객체의 속성이 NetGroup의 RTMFP 피어 투 피어 데이터 전송에 관한 서비스 품질 통계를 제공합니다.



구현
    public function get info():NetGroupInfo

관련 API 요소

localCoverageFrom

속성 
localCoverageFrom:String  [읽기 전용]

언어 버전: ActionScript 3.0
런타임 버전: Flash Player 10.1, AIR 2

이 노드에서 "가장 가까운" 담당 그룹 주소의 시작 범위를 지정합니다. 그룹 주소 링 MOD 2256 방향으로 증가하도록 범위가 지정됩니다.



구현
    public function get localCoverageFrom():String

관련 API 요소

localCoverageTo

속성 
localCoverageTo:String  [읽기 전용]

언어 버전: ActionScript 3.0
런타임 버전: Flash Player 10.1, AIR 2

이 노드에서 "가장 가까운" 담당 그룹 주소의 끝 범위를 지정합니다. 그룹 주소 링 MOD 2256 방향으로 증가하도록 범위가 지정됩니다.



구현
    public function get localCoverageTo():String

관련 API 요소

neighborCount

속성 
neighborCount:Number  [읽기 전용]

언어 버전: ActionScript 3.0
런타임 버전: Flash Player 10.1, AIR 2

이 노드가 직접 연결되어 있는 그룹 멤버 수를 지정합니다.



구현
    public function get neighborCount():Number

관련 API 요소

receiveMode

속성 
receiveMode:String

언어 버전: ActionScript 3.0
런타임 버전: Flash Player 10.1, AIR 2

이 노드의 라우팅 수신 모드를 NetGroupReceiveMode 열거형 클래스의 값 중 하나로 지정합니다.



구현
    public function get receiveMode():String
    public function set receiveMode(value:String):void

관련 API 요소

replicationStrategy

속성 
replicationStrategy:String

언어 버전: ActionScript 3.0
런타임 버전: Flash Player 10.1, AIR 2

객체 복제 가져오기 방법을 지정합니다. 이 값은 NetGroupReplicationStrategy 클래스에 열거된 값 중 하나입니다.



구현
    public function get replicationStrategy():String
    public function set replicationStrategy(value:String):void

관련 API 요소

생성자 세부 정보

NetGroup

()생성자
public function NetGroup(connection:NetConnection, groupspec:String)

언어 버전: ActionScript 3.0
런타임 버전: Flash Player 10.1, AIR 2

지정된 NetConnection 객체에 NetGroup을 구성하고 이를 groupspec으로 지정된 그룹에 연결합니다.

대부분의 경우 groupspec은 로컬 시스템의 네트워크 업링크를 사용할 가능성이 있습니다. NetStream 또는 NetGroup 객체를 groupspec으로 구성할 경우 Flash Player에서 개인 정보 대화 상자가 표시됩니다. 이 대화 상자는 사용자의 동료들과 데이터를 공유할 수 있도록 Flash Player에서 연결을 사용할 것인지 묻습니다. 사용자가 "이 도메인 허용"을 클릭하면 다음에 해당 응용 프로그램을 연결할 때는 이 대화 상자가 표시되지 않습니다. 사용자가 피어 지원 네트워킹을 허용하지 않을 경우 그룹 내의 모든 피어 기능(게시, 직접 라우팅, 객체 복제, 멀티캐스트)을 사용할 수 없게 됩니다. 권한이 허용되는 경우 info 객체의 code 속성이 NetGroup.Connect.Success로 설정된 상태로 NetConnection의 이벤트 리스너에 NetStatusEvent가 전송됩니다. 권한이 거부되는 경우 code 속성은 NetGroup.Connect.Rejected입니다. NetGroup 객체의 메서드를 호출하려고 시도하면 NetGroup.Connect.Success 이벤트가 수신될 때까지 예외가 발생합니다.

참고: 클라이언트가 기본 IP 멀티캐스트 스트림에 등록되면 보안 대화 상자가 표시되지 않습니다.

매개 변수
connection:NetConnection — NetConnection 객체입니다.
 
groupspec:String — 이름, 기능, 제한 및 이 멤버의 인증을 포함하여 RTMFP 피어 투 피어 그룹을 연결하도록 지정하는 문자열입니다.
     new NetGroup(myConnection, myGroupSpecifier.groupspecWithAuthorizations());
     

오류
ArgumentError — NetConnection 인스턴스가 연결되지 않았습니다.
 
Error — groupspec이 잘못되었습니다.

관련 API 요소

메서드 세부 정보

addHaveObjects

()메서드
public function addHaveObjects(startIndex:Number, endIndex:Number):void

언어 버전: ActionScript 3.0
런타임 버전: Flash Player 10.1, AIR 2

이 노드에서 요청을 수행하는 객체로 인접 요소에 보급하는 객체 집합에 startIndex에서 endIndex까지의 객체를 추가합니다. 기본적으로 Have 집합은 비어 있습니다. 인덱스는 0부터 9007199254740992까지의 정수여야 합니다.

객체 복제에 대한 자세한 내용은 Flash Media Server Developer’s Guide에서 "Replicate an object within a group"을 참조하십시오.

이 메서드는 info 객체의 code 속성을 NetGroup.Replication.Request로 설정하여 NetGroup의 이벤트 리스너에 NetStatusEvent를 전송합니다.

참고: 이 메서드를 호출하기 전에 NetGroup.Neighbor.Connect 이벤트를 테스트하십시오.

매개 변수

startIndex:Number — Have 집합에 추가할 객체 인덱스의 시작 범위입니다.
 
endIndex:Number — Have 집합에 추가할 객체 인덱스의 끝 범위입니다.


오류
RangeError — 이 메서드에 전달된 숫자가 0 미만이거나 9007199254740992보다 큽니다.

관련 API 요소

addMemberHint

()메서드 
public function addMemberHint(peerID:String):Boolean

언어 버전: ActionScript 3.0
런타임 버전: Flash Player 10.1, AIR 2

peerID가 그룹의 멤버임을 지정하는 레코드를 수동으로 추가합니다. 토폴로지에 필요한 경우에만 즉시 연결이 시도됩니다.

매개 변수

peerID:String — 가능한 인접 요소 집합에 추가할 peerID입니다.

반환값
Boolean — 성공인 경우 TRUE이고 실패인 경우 FALSE입니다.

관련 API 요소

addNeighbor

()메서드 
public function addNeighbor(peerID:String):Boolean

언어 버전: ActionScript 3.0
런타임 버전: Flash Player 10.1, AIR 2

이 그룹에 있어야 하는 지정된 peerID로 즉시 직접 연결하여 인접 요소를 수동으로 추가합니다. 이 즉시 연결은 나중에 토폴로지에 필요하지 않은 경우 삭제될 수 있습니다.

매개 변수

peerID:String — 즉시 연결할 peerID입니다.

반환값
Boolean — 성공인 경우 TRUE이고 실패인 경우 FALSE입니다.

관련 API 요소

addWantObjects

()메서드 
public function addWantObjects(startIndex:Number, endIndex:Number):void

언어 버전: ActionScript 3.0
런타임 버전: Flash Player 10.1, AIR 2

검색할 객체 집합에 startIndex에서 endIndex까지의 객체를 추가합니다. 인덱스는 0부터 9007199254740992까지의 정수여야 합니다. 기본적으로 Want 집합은 비어 있습니다.

객체 복제에 대한 자세한 내용은 Flash Media Server Developer’s Guide에서 "Replicate an object within a group"을 참조하십시오.

이 메서드는 info.code 속성의 NetGroup.Replication.Fetch.SendNotify를 사용하여 NetStatusEvent를 NetGroup의 이벤트 리스너로 전송합니다. 이 이벤트 다음에는 NetGroup.Replication.Fetch.Failed 또는 NetGroup.Replication.Fetch.Result 이벤트가 이어집니다.

참고: 이 메서드를 호출하기 전에 NetGroup.Neighbor.Connect 이벤트를 테스트하십시오.

매개 변수

startIndex:Number — Want 집합에 추가할 객체 인덱스의 시작 범위입니다.
 
endIndex:Number — Want 집합에 추가할 객체 인덱스의 끝 범위입니다.


오류
RangeError — 이 메서드에 전달된 숫자가 0 미만이거나 9007199254740992보다 큽니다.

관련 API 요소

close

()메서드 
public function close():void

언어 버전: ActionScript 3.0
런타임 버전: Flash Player 10.1, AIR 2

그룹과의 연결을 끊고 이 NetGroup을 닫습니다. 이 NetGroup은 이 메서드를 호출한 뒤에는 사용할 수 없습니다.

convertPeerIDToGroupAddress

()메서드 
public function convertPeerIDToGroupAddress(peerID:String):String

언어 버전: ActionScript 3.0
런타임 버전: Flash Player 10.1, AIR 2

sendToNearest() 메서드와 사용하기에 적합한 그룹 주소로 peerID를 변환합니다.

매개 변수

peerID:String — 변환할 peerID입니다.

반환값
String — peerID에 대한 그룹 주소입니다.

관련 API 요소

denyRequestedObject

()메서드 
public function denyRequestedObject(requestID:int):void

언어 버전: ActionScript 3.0
런타임 버전: Flash Player 10.1, AIR 2

이전에 addHaveObjects()로 보급된 객체의 NetGroup.Replication.Request에서 수신된 요청을 거부합니다. 요청자는 Have 집합에서 해지될 때까지 이 객체를 다시 요청할 수 있습니다.

객체 복제에 대한 자세한 내용은 Flash Media Server Developer’s Guide에서 "Replicate an object within a group"을 참조하십시오.

참고: 이 메서드를 호출하기 전에 NetGroup.Neighbor.Connect 이벤트를 테스트하십시오.

매개 변수

requestID:intNetGroup.Replication.Request 이벤트에서 지정된 요청 식별자입니다.

관련 API 요소

post

()메서드 
public function post(message:Object):String

언어 버전: ActionScript 3.0
런타임 버전: Flash Player 10.1, AIR 2

그룹의 모든 멤버에게 메시지를 전송합니다. 이 메서드를 호출하려면 NetGroup 생성자로 전달된 groupspec에서 GroupSpecifier.postingEnabled 속성을 true로 설정해야 합니다. 자세한 내용은 Flash Media Server Developer’s Guide에서 "Post messages to a group"을 참조하십시오.

모든 메시지는 고유해야 합니다. 이전에 포스팅된 메시지와 동일한 메시지는 전파되지 않을 수 있습니다. 각 메시지를 고유하게 만들려면 시퀀스 번호를 사용합니다.

메시지 전달 순서는 조정되지 않습니다. 메시 전달은 보장되지 않습니다.

메시지는 AMF로 직렬화됩니다. 메시지 유형은 Object, int, Number, String 중 하나입니다. MovieClip은 메시지가 될 수 없습니다.

이 메서드는 info.code 속성의 "NetGroup.Posting.Notify"를 사용하여 NetStatusEvent를 NetGroup의 이벤트 리스너로 전송합니다. "NetGroup.Posting.Notify" 이벤트는 클라이언트와 서버 모두에서 NetGroup으로 전달됩니다.

참고: 이 메서드를 호출하기 전에 NetGroup.Neighbor.Connect 이벤트를 테스트하십시오.

매개 변수

message:Object — 그룹의 모든 다른 멤버에게 전송할 메시지입니다.

반환값
String — 포스팅된 경우 메시지의 messageID이거나, 오류가 발생한 경우 null입니다. messageID는 메시지 직렬화의 16진수로 된 SHA256의 원시 바이트입니다.

관련 API 요소


예제  ( 예제 사용 방법 )

이 프로그램은 피어 투 피어 네트워크를 사용하는 간단한 텍스트 채팅 응용 프로그램입니다. 이 응용 프로그램은 RTMFP를 통해 Flash Media Server에 연결합니다. 서버에서는 클라이언트 응용 프로그램의 디지털 서명을 유지하고 클라이언트가 연결할 때 피어 그룹을 관리합니다. 하지만 클라이언트(피어) 간에는 데이터가 모두 전송되지만 서버로는 데이터가 전송되지 않습니다.

응용 프로그램을 실행하면 텍스트 입력 필드에 그룹 이름을 입력할 수 있습니다. GroupSpecifier 클래스는 이 이름을 사용자가 설정한 모든 GroupSpecifier 속성과 함께 사용하여 영구적으로 고유한 그룹의 이름이 되는 문자열을 만듭니다. 그룹에 연결하려는 다른 클라이언트는 동일한 그룹 이름을 사용해야 합니다. 예를 들어 클라이언트 A가 "firstmesh"라는 그룹 이름을 사용하는 경우 클라이언트 A와 통신하려는 모든 클라이언트도 "firstmesh"를 그룹 이름으로 사용해야 합니다. 클라이언트 B가 "kite"라는 그룹 이름을 사용하는 경우 연결은 성공하지만 새 그룹이 만들어지고 클라이언트 A나 "firstmesh" 그룹의 다른 어떤 클라이언트와도 통신할 수 없습니다.

이 예를 실행하려면 Flash Pro의 라이브러리에 Button, Label, TextInput 및 TextArea 구성 요소를 추가합니다.



package  {

    import flash.display.Sprite;
    import flash.events.TextEvent;
    import flash.events.MouseEvent;
    import flash.events.NetStatusEvent;
    import fl.events.ComponentEvent;
    import fl.controls.Label;
    import fl.controls.Button;
    import fl.controls.TextInput;
    import fl.controls.TextArea;
    import flash.text.TextFieldAutoSize;
    import flash.net.*;

    public class NetGroupPostExample extends Sprite{

        private var connectButton:Button;
        private var disconnectButton:Button;
        private var groupNameText:TextInput;
        private var userNameText:TextInput;
        private var chatText:TextInput;
        private var statusLog:TextArea;
        private var groupLabel:Label;
        private var userLabel:Label;

        private var netConnection:NetConnection = null;
        private var netGroup:NetGroup = null;
        private var sequenceNumber:uint = 0;
        private var connected:Boolean = false;
        private var joinedGroup:Boolean = false;

        private const SERVER:String = "rtmfp://fms.example.com/someapp";

        public function NetGroupPostExample() {
            DoUI();
        }

        // Writes messages to the TextArea.
        private function StatusMessage(msg:Object):void{
            statusLog.text += msg;
            statusLog.verticalScrollPosition = statusLog.textHeight;
            statusLog.validateNow();
        }

        // Handles all NetStatusEvents for the NetConnection and the NetGroup.
        // This code includes cases it doesn't handle so you can see the cases
        // and their info objects for learning purposes.
        private function NetStatusHandler(e:NetStatusEvent):void{
            StatusMessage(e.info.code + "\n");
            switch(e.info.code){
                case "NetConnection.Connect.Success":
                    connectButton.enabled = false;
                    disconnectButton.enabled = true;
                    OnConnect();
                    break;

                case "NetConnection.Connect.Closed":
                    OnDisconnect();
                    break;

                case "NetGroup.Connect.Success": // e.info.group
                    OnNetGroupConnect();
                    break;

                case "NetGroup.Connect.Rejected": // e.info.group
                case "NetGroup.Connect.Failed": // e.info.group
                    break;

                case "NetGroup.Posting.Notify": // e.info.message, e.info.messageID
                    OnPosting(e.info.message);
                    break;

                case "NetStream.MulticastStream.Reset":
                case "NetStream.Buffer.Full":
                    break;

                case "NetGroup.SendTo.Notify": // e.info.message, e.info.from, e.info.fromLocal
                case "NetGroup.LocalCoverage.Notify": //
                case "NetGroup.Neighbor.Connect": // e.info.neighbor
                case "NetGroup.Neighbor.Disconnect": // e.info.neighbor
                case "NetGroup.MulticastStream.PublishNotify": // e.info.name
                case "NetGroup.MulticastStream.UnpublishNotify": // e.info.name
                case "NetGroup.Replication.Fetch.SendNotify": // e.info.index
                case "NetGroup.Replication.Fetch.Failed": // e.info.index
                case "NetGroup.Replication.Fetch.Result": // e.info.index, e.info.object
                case "NetGroup.Replication.Request": // e.info.index, e.info.requestID
                default:
                    break;
                }
            }
        // Creates a NetConnection to Flash Media Server if the app isn't already connected
        // and if there's a group name in the TextInput field.
        private function DoConnect(e:MouseEvent):void{
            if(!connected && (groupNameText.length > 0)){
                StatusMessage("Connecting to \"" + SERVER + "\" ...\n");
                netConnection = new NetConnection();
                netConnection.addEventListener(NetStatusEvent.NET_STATUS, NetStatusHandler);
                // To connect to Flash Media Server, pass the server name.
                netConnection.connect(SERVER);
            }
            else
            {
                StatusMessage("Enter a group name");
            }
        }

        // Called in the "NetConnection.Connect.Success" case in the NetStatusEvent handler.
        private function OnConnect():void{

            StatusMessage("Connected\n");
            connected = true;

            // Create a GroupSpecifier object to pass to the NetGroup constructor.
            // The GroupSpecifier determines the properties of the group
            var groupSpecifier:GroupSpecifier;
            groupSpecifier = new GroupSpecifier("aslrexample/" + groupNameText.text);
            groupSpecifier.postingEnabled = true;
            groupSpecifier.serverChannelEnabled = true;

            netGroup = new NetGroup(netConnection, groupSpecifier.groupspecWithAuthorizations());
            netGroup.addEventListener(NetStatusEvent.NET_STATUS, NetStatusHandler);

            StatusMessage("Join \"" + groupSpecifier.groupspecWithAuthorizations() + "\"\n");

        }

        private function OnNetGroupConnect():void{
            joinedGroup = true;
        }

        private function DoDisconnect(e:MouseEvent):void{
            if(netConnection){
                netConnection.close();
            }
        }

        private function OnDisconnect():void{
            StatusMessage("Disconnected\n");
            netConnection = null;
            netGroup = null;
            connected = false;
            joinedGroup = false;
            connectButton.enabled = true;
            disconnectButton.enabled = false;
        }

        private function ClearChatText():void{
            chatText.text = "";
        }

        // Called when you the chatText field has focus and you press Enter.
        private function DoPost(e:ComponentEvent):void{
            if(joinedGroup){
                var message:Object = new Object;
                message.user = userNameText.text;
                message.text = chatText.text;
                message.sequence = sequenceNumber++;
                message.sender = netConnection.nearID;

                netGroup.post(message);
                StatusMessage("==> " + chatText.text + "\n");
            } else {
                StatusMessage("Click Connect before sending a chat message");
            }
            ClearChatText();
        }

        private function OnPosting(message:Object):void{
            StatusMessage("<" + message.user + "> " + message.text + "\n");
        }

        private function DoUI():void {

            groupLabel = new Label();
            groupLabel.move(20, 10);
            groupLabel.autoSize = TextFieldAutoSize.LEFT
            groupLabel.text = "Group name:"
            addChild(groupLabel);

            groupNameText = new TextInput();
            groupNameText.move(90, 10);
            groupNameText.text = "channel" + (int(Math.random() * 899) + 101);
            addChild(groupNameText);

            connectButton = new Button();
            connectButton.addEventListener(MouseEvent.CLICK, DoConnect);
            connectButton.move(205, 10);
            connectButton.label = "Connect";
            addChild(connectButton);

            disconnectButton = new Button();
            disconnectButton.addEventListener(MouseEvent.CLICK, DoDisconnect);
            disconnectButton.move(310, 10);
            disconnectButton.label = "Disconnect";
            disconnectButton.enabled = false;
            addChild(disconnectButton);

            statusLog = new TextArea();
            statusLog.move(30, 38);
            statusLog.width = 360;
            statusLog.height = 215;
            statusLog.editable = false;
            addChild(statusLog);

            userLabel = new Label();
            userLabel.move(20, 270);
            userLabel.autoSize = TextFieldAutoSize.LEFT
            userLabel.text = "User name:"
            addChild(userLabel);

            userNameText = new TextInput();
            userNameText.move(80, 270);
            userNameText.text = "user " + int(Math.random() * 65536);
            addChild(userNameText);

            chatText = new TextInput();
            chatText.addEventListener(ComponentEvent.ENTER, DoPost);
            chatText.move(185, 270);
            chatText.maxChars = 255;
            chatText.width = 215;
            addChild(chatText);

        }

        public function onPlayStatus(info:Object):void {}
        public function onMetaData(info:Object):void {}
        public function onCuePoint(info:Object):void {}
        public function onTextData(info:Object):void {}

    }

}




removeHaveObjects

()메서드 
public function removeHaveObjects(startIndex:Number, endIndex:Number):void

언어 버전: ActionScript 3.0
런타임 버전: Flash Player 10.1, AIR 2

이 노드에서 요청을 수행하는 객체로 인접 요소에 보급하는 객체 집합에서 startIndex에서 endIndex까지의 객체를 제거합니다. 인덱스는 0부터 9007199254740992까지의 정수여야 합니다.

객체 복제에 대한 자세한 내용은 Flash Media Server Developer’s Guide에서 "Replicate an object within a group"을 참조하십시오.

참고: 이 메서드를 호출하기 전에 NetGroup.Neighbor.Connect 이벤트를 테스트하십시오.

매개 변수

startIndex:Number — Have 집합에서 제거할 객체 인덱스의 시작 범위입니다.
 
endIndex:Number — Have 집합에서 제거할 객체 인덱스의 끝 범위입니다.


오류
RangeError — 이 메서드에 전달된 숫자가 0 미만이거나 9007199254740992보다 큽니다.

관련 API 요소

removeWantObjects

()메서드 
public function removeWantObjects(startIndex:Number, endIndex:Number):void

언어 버전: ActionScript 3.0
런타임 버전: Flash Player 10.1, AIR 2

검색할 객체 집합에서 startIndex에서 endIndex까지의 객체를 제거합니다. 인덱스는 0부터 9007199254740992까지의 정수여야 합니다.

객체 복제에 대한 자세한 내용은 Flash Media Server Developer’s Guide에서 "Replicate an object within a group"을 참조하십시오.

참고: 이 메서드를 호출하기 전에 NetGroup.Neighbor.Connect 이벤트를 테스트하십시오.

매개 변수

startIndex:Number — Want 집합에서 제거할 객체 인덱스의 시작 범위입니다.
 
endIndex:Number — Want 집합에서 제거할 객체 인덱스의 끝 범위입니다.


오류
RangeError — 이 메서드에 전달된 숫자가 0 미만이거나 9007199254740992보다 큽니다.

관련 API 요소

sendToAllNeighbors

()메서드 
public function sendToAllNeighbors(message:Object):String

언어 버전: ActionScript 3.0
런타임 버전: Flash Player 10.1, AIR 2

모든 인접 요소에 메시지를 전송합니다. 최소 하나의 인접 요소가 선택된 경우 NetGroupSendResult.SENT가 반환됩니다.

메시지 라우팅에 대한 자세한 내용은 Flash Media Server Developer’s Guide에서 "Route messages directly to a peer"를 참조하십시오.

노드에서 메시지를 수신할 때 info 객체의 code 속성을 NetGroup.SendTo.Notify로 설정하여 NetGroup의 이벤트 리스너에 NetStatusEvent를 전송합니다.

참고: 이 메서드를 호출하기 전에 NetGroup.Neighbor.Connect 이벤트를 테스트하십시오.

매개 변수

message:Object — 전송할 메시지입니다.

반환값
String — 전송의 성공 또는 실패 여부를 나타내는 NetGroupSendResult 열거형 클래스의 속성입니다.

관련 API 요소

sendToNearest

()메서드 
public function sendToNearest(message:Object, groupAddress:String):String

언어 버전: ActionScript 3.0
런타임 버전: Flash Player 10.1, AIR 2

지정된 그룹 주소에 가장 가까운 인접 요소(또는 로컬 노드)에 메시지를 전송합니다. 전체 링에서 인접 요소를 고려합니다. 메시지가 대상에 성공적으로 전송되는 경우 NetGroupSendResult.SENT가 반환됩니다.

메시지 라우팅에 대한 자세한 내용은 Flash Media Server Developer’s Guide에서 "Route messages directly to a peer"를 참조하십시오.

노드에서 메시지를 수신할 때 info 객체의 code 속성을 NetGroup.SendTo.Notify로 설정하여 NetGroup의 이벤트 리스너에 NetStatusEvent를 전송합니다.

참고: 이 메서드를 호출하기 전에 NetGroup.Neighbor.Connect 이벤트를 테스트하십시오.

매개 변수

message:Object — 전송할 메시지입니다.
 
groupAddress:String — 메시지를 라우팅할 그룹 주소입니다.

반환값
String — 전송의 성공 또는 실패 여부를 나타내는 NetGroupSendResult 열거형 클래스의 속성입니다.

관련 API 요소

sendToNeighbor

()메서드 
public function sendToNeighbor(message:Object, sendMode:String):String

언어 버전: ActionScript 3.0
런타임 버전: Flash Player 10.1, AIR 2

sendMode 매개 변수에서 지정한 인접 요소에 메시지를 전송합니다. 메시지가 요청된 대상에 성공적으로 전송된 경우 NetGroupSendResult.SENT가 반환됩니다.

메시지 라우팅에 대한 자세한 내용은 Flash Media Server Developer’s Guide에서 "Route messages directly to a peer"를 참조하십시오.

노드에서 메시지를 수신할 때 info 객체의 code 속성을 NetGroup.SendTo.Notify로 설정하여 NetGroup의 이벤트 리스너에 NetStatusEvent를 전송합니다.

참고: 이 메서드를 호출하기 전에 NetGroup.Neighbor.Connect 이벤트를 테스트하십시오.

매개 변수

message:Object — 전송할 메시지입니다.
 
sendMode:String — 메시지를 전송할 인접 요소를 지정하는 NetGroupSendMode 열거형 클래스의 속성입니다.

반환값
String — 전송의 성공 또는 실패 여부를 나타내는 NetGroupSendResult 열거형 클래스의 속성입니다.

관련 API 요소

writeRequestedObject

()메서드 
public function writeRequestedObject(requestID:int, object:Object):void

언어 버전: ActionScript 3.0
런타임 버전: Flash Player 10.1, AIR 2

이전에 addHaveObjects() 메서드로 보급된 객체의 NetStatusEvent NetGroup.Replication.Request에서 수신한 것으로 요청이 충족됩니다. object 유형은 Object, int, Number, String 중 하나입니다. MovieClip은 object가 될 수 없습니다.

객체 복제에 대한 자세한 내용은 Flash Media Server Developer’s Guide에서 "Replicate an object within a group"을 참조하십시오.

참고: 이 메서드를 호출하기 전에 NetGroup.Neighbor.Connect 이벤트를 테스트하십시오.

매개 변수

requestID:intNetGroup.Replication.Request 이벤트에서 지정된 요청 식별자입니다.
 
object:ObjectNetGroup.Replication.Request 이벤트에 지정한 인덱스에 해당하는 객체입니다.

관련 API 요소

이벤트 세부 정보

netStatus

이벤트
이벤트 객체 유형: flash.events.NetStatusEvent
속성 NetStatusEvent.type = flash.events.NetStatusEvent.NET_STATUS

언어 버전: ActionScript 3.0
런타임 버전: AIR 1.0, Flash Player 10.1

NetGroup 객체가 상태 또는 오류 상황을 보고할 때 전달됩니다. netStatus 이벤트에는 info 속성이 포함되어 있습니다. info 속성은 연결 시도의 성공 여부 등과 같은 이벤트 관련 정보를 담고 있는 객체입니다.

netStatus 이벤트 객체의 type 속성 값을 정의합니다.

이 이벤트에는 다음과 같은 속성이 있습니다.

속성
bubblesfalse
cancelablefalse. 취소할 기본 비헤이비어가 없습니다.
currentTarget이벤트 리스너를 통해 Event 객체를 처리하고 있는 객체입니다.
info객체의 상태 또는 오류 상황을 설명하는 속성이 있는 객체입니다.
target상태를 보고하는 NetConnection 또는 NetStream 객체입니다.

관련 API 요소

NetGroupExample.as

이 프로그램은 피어 투 피어 네트워크를 사용하는 간단한 비디오 채팅 응용 프로그램입니다. 이 응용 프로그램은 RTMFP를 통해 Flash Media Server에 연결합니다. 서버에서는 클라이언트 응용 프로그램의 디지털 서명을 유지하고 클라이언트가 연결할 때 피어 그룹을 관리합니다. 하지만 클라이언트(피어) 간에는 데이터가 모두 전송되지만 서버로는 데이터가 전송되지 않습니다.

응용 프로그램을 실행하면 텍스트 입력 필드에 그룹 이름을 입력할 수 있습니다. GroupSpecifier 클래스는 이 이름을 사용자가 설정한 모든 GroupSpecifier 속성과 함께 사용하여 영구적으로 고유한 그룹의 이름이 되는 문자열을 만듭니다. 그룹에 연결하려는 다른 클라이언트는 동일한 그룹 이름을 사용해야 합니다. 예를 들어 클라이언트 A가 "firstmesh"라는 그룹 이름을 사용하는 경우 클라이언트 A와 통신하려는 모든 클라이언트도 "firstmesh"를 그룹 이름으로 사용해야 합니다. 클라이언트 B가 "kite"라는 그룹 이름을 사용하는 경우 연결은 성공하지만 새 그룹이 만들어지고 클라이언트 A나 "firstmesh" 그룹의 다른 어떤 클라이언트와도 통신할 수 없습니다.


<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="100%" height="100%" applicationComplete="OnApplicationComplete()">
    <mx:Script>
        <![CDATA[
            private var netConnection:NetConnection = null;
            private var netStream:NetStream = null;
            private var netGroup:NetGroup = null;
            private var video:Video = null;
            private var sequenceNumber:uint = 0;
            private var resizeTimer:Timer = null;

            private const SERVER:String = "rtmfp://fms.example.com/someapp";

            [Bindable] private var connected:Boolean = false;
            [Bindable] private var joinedGroup:Boolean = false;

            private function OnApplicationComplete():void
            {
                userName.text = "user " + int(Math.random() * 65536);

                groupName.text = "channel" + (int(Math.random() * 899) + 101);

                resizeTimer = new Timer(2000.0);
                resizeTimer.addEventListener(TimerEvent.TIMER, DoResizeVideo);
                resizeTimer.start();
            }

            private function StatusMessage(msg:Object):void
            {
                statusLog.text += msg;
                statusLog.verticalScrollPosition = statusLog.textHeight;
                statusLog.validateNow();
            }

            private function NetStatusHandler(e:NetStatusEvent):void
            {
                StatusMessage(e.info.code);
                switch(e.info.code)
                {
                case "NetConnection.Connect.Success":
                    OnConnect();
                    break;

                case "NetConnection.Connect.Closed":
                case "NetConnection.Connect.Failed":
                case "NetConnection.Connect.Rejected":
                case "NetConnection.Connect.AppShutdown":
                case "NetConnection.Connect.InvalidApp":
                    OnDisconnect();
                    break;

                case "NetStream.Connect.Success": // e.info.stream
                    OnNetStreamConnect();
                    break;

                case "NetStream.Connect.Rejected": // e.info.stream
                case "NetStream.Connect.Failed": // e.info.stream
                    DoDisconnect();
                    break;

                case "NetGroup.Connect.Success": // e.info.group
                    OnNetGroupConnect();
                    break;

                case "NetGroup.Connect.Rejected": // e.info.group
                case "NetGroup.Connect.Failed": // e.info.group
                    DoDisconnect();
                    break;

                case "NetGroup.Posting.Notify": // e.info.message, e.info.messageID
                    OnPosting(e.info.message);
                    break;


                case "NetStream.MulticastStream.Reset":
                case "NetStream.Buffer.Full":
                    DoResizeVideo();
                    break;

                case "NetGroup.SendTo.Notify": // e.info.message, e.info.from, e.info.fromLocal
                case "NetGroup.LocalCoverage.Notify": //
                case "NetGroup.Neighbor.Connect": // e.info.neighbor
                case "NetGroup.Neighbor.Disconnect": // e.info.neighbor
                case "NetGroup.MulticastStream.PublishNotify": // e.info.name
                case "NetGroup.MulticastStream.UnpublishNotify": // e.info.name
                case "NetGroup.Replication.Fetch.SendNotify": // e.info.index
                case "NetGroup.Replication.Fetch.Failed": // e.info.index
                case "NetGroup.Replication.Fetch.Result": // e.info.index, e.info.object
                case "NetGroup.Replication.Request": // e.info.index, e.info.requestID
                default:
                    break;
                }
            }

            private function DoConnect():void
            {
                StatusMessage("Connecting to \"" + SERVER + "\" ...\n");
                netConnection = new NetConnection();
                netConnection.addEventListener(NetStatusEvent.NET_STATUS, NetStatusHandler);
                netConnection.connect(SERVER);
            }

            private function OnConnect():void
            {
                var groupSpecifier:GroupSpecifier;

                StatusMessage("Connected\n");
                connected = true;

                groupSpecifier = new GroupSpecifier("max2009lab/" + groupName.text);
                groupSpecifier.multicastEnabled = true;
                groupSpecifier.postingEnabled = true;
                groupSpecifier.serverChannelEnabled = true;

                netStream = new NetStream(netConnection, groupSpecifier.groupspecWithAuthorizations());
                netStream.addEventListener(NetStatusEvent.NET_STATUS, NetStatusHandler);

                netGroup = new NetGroup(netConnection, groupSpecifier.groupspecWithAuthorizations());
                netGroup.addEventListener(NetStatusEvent.NET_STATUS, NetStatusHandler);

                StatusMessage("Join \"" + groupSpecifier.groupspecWithAuthorizations() + "\"\n");
            }

            private function OnNetStreamConnect():void
            {
                netStream.client = this;

                var mic:Microphone = Microphone.getMicrophone();
                if(mic)
                {
                    mic.codec = SoundCodec.SPEEX;
                    mic.setSilenceLevel(0);

                    netStream.attachAudio(mic);

                    StatusMessage("got microphone\n");
                }

                var camera:Camera = Camera.getCamera();
                if(camera)
                {
                    camera.setMode(320, 240, 10);
                    camera.setQuality(30000, 0);
                    camera.setKeyFrameInterval(15);

                    videoDisplay.attachCamera(camera);
                    videoDisplay.maintainAspectRatio = true;

                    netStream.attachCamera(camera);

                    StatusMessage("got camera\n");
                }

                netStream.publish("stream");
            }

            private function OnNetGroupConnect():void
            {
                joinedGroup = true;
            }

            private function DoDisconnect():void
            {
                if(netConnection)
                    netConnection.close();
                videoDisplay.attachCamera(null);
            }

            private function OnDisconnect():void
            {
                StatusMessage("Disconnected\n");
                netConnection = null;
                netStream = null;
                netGroup = null;
                connected = false;
                joinedGroup = false;
            }

            private function ClearChatText():void
            {
                chatText.text = "";
            }

            private function DoPost():void
            {
                var message:Object = new Object;

                message.user = userName.text;
                message.text = chatText.text;
                message.sequence = sequenceNumber++;
                message.sender = netConnection.nearID;

                netGroup.post(message);

                StatusMessage("==> " + chatText.text + "\n");

                chatText.callLater(ClearChatText);
            }

            private function OnPosting(message:Object):void
            {
                StatusMessage("<" + message.user + "> " + message.text + "\n");
            }

            private function DoResizeVideo(ignored:* = null):void
            {
                if(video)
                {
                    if( (0 == video.videoHeight)
                     || (0 == video.videoWidth)
                    )
                    {
                        video.height = videoDisplay.height;
                        video.width = videoDisplay.width;
                        video.x = 0;
                        video.y = 0;
                    }
                    else
                    {
                        var videoAspect:Number = Number(video.videoWidth) / Number(video.videoHeight);
                        var displayAspect:Number = Number(videoDisplay.width) / Number(videoDisplay.height);
                        var adjustFactor:Number;

                        if(videoAspect >= displayAspect) // video is wider than display
                        {
                            adjustFactor = Number(video.videoWidth) / Number(videoDisplay.width);
                            video.width = videoDisplay.width;
                            video.height = int(Number(video.videoHeight) / adjustFactor);
                            video.x = 0;
                            video.y = int((videoDisplay.height - video.height) / 2);
                        }
                        else
                        {
                            adjustFactor = Number(video.videoHeight) / Number(videoDisplay.height);
                            video.height = videoDisplay.height;
                            video.width = int(Number(video.videoWidth) / adjustFactor);
                            video.x = int((videoDisplay.width - video.width) / 2);
                            video.y = 0;
                        }
                    }
                }
            }

            public function onPlayStatus(info:Object):void {}
            public function onMetaData(info:Object):void {}
            public function onCuePoint(info:Object):void {}
            public function onTextData(info:Object):void {}

            public function ValidateConnectAllowed(isConnected:Boolean, groupNameText:String):Boolean
            {
                return (!isConnected) && (groupNameText.length > 0);
            }
        ]]>
    </mx:Script>

    <mx:VBox top="10" right="10" left="10" bottom="10" verticalGap="6">
        <mx:HBox width="100%">
            <mx:Text text="Group:"/>
            <mx:TextInput id="groupName" width="100%" text="default" enabled="{!connected}"/>
            <mx:Button label="Connect" click="DoConnect()" enabled="{ValidateConnectAllowed(connected, groupName.text)}" />
            <mx:Button label="Disconnect" click="DoDisconnect()" enabled="{connected}" />
        </mx:HBox>
        <mx:VideoDisplay id="videoDisplay" width="320" height="240" resize="DoResizeVideo()"/>
        <mx:TextArea id="statusLog" width="100%" height="100%"/>
        <mx:HBox width="100%">
            <mx:TextInput id="userName" width="160" />
            <mx:TextInput id="chatText" width="100%" enabled="{joinedGroup}" enter="DoPost()"/>
        </mx:HBox>
    </mx:VBox>

</mx:Application>




[ X ]영어로 표시되는 이유
ActionScript 3.0 참조 설명서의 내용이 영어로 나타납니다.

ActionScript 3.0 참조 설명서 중 일부는 전체 언어로 번역되지 않았습니다. 언어 요소가 번역되지 않은 경우 영어로 나타납니다. 예를 들어 ga.controls.HelpBox 클래스는 어떤 언어로도 번역되지 않았습니다. 그러므로 한국어 버전의 참조 설명서에서 ga.controls.HelpBox 클래스는 영어로 나타납니다.