Created
August 16, 2010 11:28
-
-
Save nsdevaraj/526815 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?xml version="1.0"?> | |
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" initialize="init();"> | |
<mx:Script> | |
<![CDATA[ | |
import mx.collections.*; | |
[Bindable] | |
private var myCursor:IViewCursor; | |
[Bindable] | |
public var myXMLC:XMLListCollection; | |
public var myXML:XML =<book> | |
<chapter> | |
<page pagenumber="1" visible="false"> | |
<column tab="fullwidth"> | |
<swf align="center" src='assets/img/relation1.jpg' /> | |
</column> | |
</page> | |
<page pagenumber="2" visible="false"> | |
<column tab="fullwidth"> | |
<swf align="center" src='assets/img/relation2.jpg' /> | |
</column> | |
</page> | |
<page pagenumber="3"> | |
<column tab="fullwidth"> | |
<swf align="center" src='assets/img/baken.swf' /> | |
</column> | |
</page> | |
<page pagenumber="4"> | |
<column tab="fullwidth"> | |
<swf align="center" src='assets/img/desktopography1.jpg' /> | |
</column> | |
</page> | |
<page pagenumber="5"> | |
<column tab="fullwidth"> | |
<swf align="center" src='assets/img/desktopography2.jpg' /> | |
</column> | |
</page> | |
<page pagenumber="6"> | |
<column tab="fullwidth"> | |
<swf align="center" src='assets/img/dreamscan.jpg' /> | |
</column> | |
</page> | |
<page pagenumber="7"> | |
<column tab="fullwidth"> | |
<swf align="center" src='assets/img/formula.jpg' /> | |
</column> | |
</page> | |
<page pagenumber="8"> | |
<column tab="fullwidth"> | |
<swf align="center" src='assets/img/hollywood.jpg' /> | |
</column> | |
</page> | |
<page pagenumber="9"> | |
<column tab="fullwidth"> | |
<swf align="center" src='assets/img/mode1.jpg' /> | |
</column> | |
</page> | |
<page pagenumber="10"> | |
<column tab="fullwidth"> | |
<swf align="center" src='assets/img/mode2.jpg' /> | |
</column> | |
</page> | |
<page pagenumber="11"> | |
<column tab="fullwidth"> | |
<swf align="center" src='assets/img/renaissance.jpg' /> | |
</column> | |
</page> | |
<page pagenumber="12"> | |
<column tab="fullwidth"> | |
<swf align="center" src='assets/img/backstabber.jpg' /> | |
</column> | |
</page> | |
</chapter> | |
</book>; | |
public var myXMLList:XMLList = myXML.chapter.page; | |
public static const TOTALFLIPS:int = 6; | |
public function init():void { | |
myXMLC = new XMLListCollection(myXMLList); | |
myCursor = myXMLC.createCursor(); | |
var sort:Sort = new Sort(); | |
sort.fields = [new SortField('@pagenumber', false,false,true)]; | |
myXMLC.sort=sort; | |
myXMLC.refresh(); | |
navigate('first'); | |
} | |
public function countSelection(str:String):void { | |
if(myCursor.findAny(XML("<page pagenumber='"+str+"'></page>"))){ | |
navigate('seek') | |
}else { | |
ta1.text = 'not found'; | |
} | |
} | |
public function nextCollection():void { | |
if(! myCursor.afterLast) { | |
myCursor.moveNext(); | |
} | |
} | |
public function backCollection():void { | |
if(!myCursor.beforeFirst) { | |
myCursor.movePrevious(); | |
} | |
} | |
public function firstCollection():void { | |
myCursor.seek(CursorBookmark.FIRST); | |
} | |
public function lastCollection():void { | |
myCursor.seek(CursorBookmark.LAST); | |
} | |
public function seekCollection():void { | |
var mark:CursorBookmark=myCursor.bookmark; | |
while (myCursor.moveNext()) { | |
} | |
myCursor.seek(mark); | |
} | |
public function navigate(caseStr:String):void { | |
switch(caseStr) { | |
case 'first': | |
firstCollection(); | |
break; | |
case 'back': | |
backCollection(); | |
break; | |
case 'next': | |
nextCollection(); | |
break; | |
case 'last': | |
lastCollection(); | |
break; | |
case 'seek': | |
seekCollection(); | |
break; | |
} | |
var sixPgsXMLList:XMLList = new XMLList(); | |
var xmlIndex:int = myXMLC.getItemIndex(myCursor.current); | |
xmlIndex % 2 ? xmlIndex = xmlIndex - 1 : xmlIndex; | |
xmlIndex+TOTALFLIPS>myXMLC.length ? xmlIndex = myXMLC.length - TOTALFLIPS : xmlIndex; | |
for (var flipPg:int = 0; flipPg < TOTALFLIPS; flipPg++) { | |
sixPgsXMLList += XMLList(myXMLC.getItemAt(xmlIndex+flipPg)); | |
} | |
var firstPage:Boolean = sixPgsXMLList[0] == myXMLC.getItemAt(0); | |
var lastPage:Boolean = sixPgsXMLList[sixPgsXMLList.length()-1] == myXMLC.getItemAt(myXMLC.length-1); | |
enableDisableButtons(firstPage,lastPage); | |
ta1.text = String(sixPgsXMLList ); | |
} | |
public function enableDisableButtons(firstPg:Boolean,lastPg:Boolean):void { | |
var firstInCollection:Boolean = myXMLC.getItemAt(0) == myCursor.current; | |
firstInCollection = firstPg; | |
first.enabled = back.enabled = !firstInCollection | |
var lastInCollection:Boolean = myXMLC.getItemAt(myXMLC.length - 1) == myCursor.current; | |
lastInCollection = lastPg; | |
last.enabled = next.enabled = !lastInCollection; | |
} | |
]]> | |
</mx:Script> | |
<mx:ComboBox id="myCB" dataProvider="{myXMLC}" change="{countSelection(String(myCB.selectedItem.@pagenumber))}" selectedItem="{String(myCursor.current)}" /> | |
<mx:TextInput id="ta2" change="{countSelection(ta2.text)}" text="{String(myCursor.current.@pagenumber)}" /> | |
<mx:TextArea id="ta1" height="200" width="175"/> | |
<mx:HBox> | |
<mx:Button label="first" id="first" click="navigate('first')"/> | |
<mx:Button label="back" id="back" click="navigate('back')"/> | |
<mx:Button label="next" id="next" click="navigate('next')"/> | |
<mx:Button label="last" id="last" click="navigate('last')"/> | |
</mx:HBox> | |
</mx:Application> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment