Skip to content

Instantly share code, notes, and snippets.

@nsdevaraj
Created August 16, 2010 11:28
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save nsdevaraj/526815 to your computer and use it in GitHub Desktop.
Save nsdevaraj/526815 to your computer and use it in GitHub Desktop.
<?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