10.12.2012 Views

ActionScript 3.0 Design Patterns.pdf - VideoTutorials-bg.com

ActionScript 3.0 Design Patterns.pdf - VideoTutorials-bg.com

ActionScript 3.0 Design Patterns.pdf - VideoTutorials-bg.com

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Example 8-17. ConcreteSubject.as<br />

package<br />

{<br />

//Concrete Subject<br />

public class ConcreteSubject implements Subject<br />

{<br />

private var score:Number;<br />

private var damage:String;<br />

private var duplicate:Boolean;<br />

private var observers:Array;<br />

public function ConcreteSubject ( )<br />

{<br />

observers=new Array( );<br />

}<br />

//Subscribe observer without duplicates<br />

public function subscribeObserver (obserNow:Observer):void<br />

{<br />

duplicate=false;<br />

for (var ob=0; ob < observers.length; ob++)<br />

{<br />

if (observers[ob] == obserNow)<br />

{<br />

duplicate=true;<br />

trace ("Sorry, " + observers[ob].nomDeGuerre +<br />

" is already subscribed.");<br />

}<br />

}<br />

if (! duplicate)<br />

{<br />

observers.push (obserNow);<br />

}<br />

}<br />

//Unsubscribe observer<br />

public function unsubscribeObserver (obserNow:Observer):void<br />

{<br />

for (var ob=0; ob < this.observers.length; ob++)<br />

{<br />

if (observers[ob] == obserNow)<br />

{<br />

trace ("\n***" + this.observers[ob].nomDeGuerre +<br />

" has been removed.***\n");<br />

observers.splice (ob,1);<br />

}<br />

}<br />

}<br />

//Notify observers of total score and current damage<br />

public function notifyObserver (score:Number,damage:String):void<br />

{<br />

for (var notify in observers)<br />

{<br />

observers[notify].update (score,damage);<br />

304 | Chapter 8: Observer Pattern

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!