Scrolling Mobile List in Pure AS3?

I'd like to use a scrolling list in one of my AS3 mobile projects. I like the one built for Flex, but I do not wish to use flex as that would be overkill and I already have the project written in AS3.
Does anyone know of any pure AS3 scrolling list components for mobile?
thanks,
Jack

That's the flex component I wish to immitate. But since I am not using Flex, I cannot use the spark component. (I wish I could use spark components, but Adobe built them in such a way that is nearly impossibnle to use in a non-flex project.)
I am hoping there is a pre-built nonFlex, pure AS3 equilevent. 

Similar Messages

  • Mobile apps in pure AS3

        Hi there,
    I'm wondering what components (such as list control, buttons, date picker and so on) others are using  when they develop pure AS3 mobile apps for IOS.  Is there a book that you can suggest for me to help understand how components are built in AS3?
    Thanks

    If you want performance you'll need to use Stage3D to utilize the GPU. The flash/flex display list will never match the speed of Stage3D. The mx and spark components will never feel as 'native' as coding in objective-c until they literally transcode from AS3(4?) to Obj-c and compile to arm. Spark is more optimized than mx so it does make MXML (Flex) a viable alternative. It certainly does not feel native however.
    You should really consider how 'native' you need it to feel. People, I find, are quite tolerant. You may be trying to overachieve in an area that less important than the actual functionality your app provides. Users will use an interface that's not buttery smooth if you actually provide a service they desire.
    Pure code is just if you really want to do everything yourself.  There's really little out there to help you. The essence of going the "pure AS3" is that you are going to code it all yourself. All my projects aside 2 are pure AS3 and I rely on Starling/FeathersUI heavily to provide the closest to "native like" feel. For the only truely "native like" feel, you'll need to code entirely on the GPU.
    There's nothing built-in like Flex shares data view to view. If you go pure as3 and write your app all on your own terms then simply keep that desire in mind from the start and code yout hand made view system to either pass references to the data or make a singleton registry to share data. Overall, in pure as3, be prepared to do it all manually. You have little to none of the automation of Flex.

  • Flex Mobile List Item Renderer problems

    i have flex mobile list created with item renderer,i remove individual item in flex mobile list,it is worked very well,but some times i double click action or another scroll event using in list, last item doesn't delete in flex mobile list.it is repeated again and again.so anyone this problem faced,give me a solution.
    i expect your feedback.Thanking You

    Hi Alex,
    I've searched a lot for that post (on this forum and on google). Not sure if this is the post you were talking about: http://tech.groups.yahoo.com/group/flexcoders/message/161146
    I have fixed the setter of the data not to also manage the state (I figured it was inappropriate there)... overrode the getCurrentRendererState, I'm managing the state staight from the data. When I run the following... All sold items show as sold... and normal states show as normal. When I try to hover over the normal state, it dosen't play the hovered state, and when I click to the selected state. These built in states don't work.
    override public function set data(value:Object):void {
         super.data = value;
         ticketNumber_ti.text = value.slots_id;
    override protected function getCurrentRendererState():String {
         var state:String;
         if (data.date_purchased != null) {
              state = 'sold';
              mouseChildren = false;
              mouseEnabled = false;
         }  else {
              state = 'normal';
              mouseChildren = true;
              mouseEnabled = true;
         return state;
    On another note, the states only update, once I start scrolling, everything updates... I tried to validateDisplayList() to the List after setting the dataProvider with no luck.
    Once I find a solution I will certainly add it to my Blog as I have not found a lot of solutions for this problem.
    Any help is grteatly appreciated.

  • Cleaning Up Vector (array like) in pure AS3 project

    I have been learning a game type animation from a tutorial at this site: http://www.emanueleferonato.com/2011/11/08/as3-version-of-nodes-engine-full-playable-game- with-infinite-solvable-levels/. Source code there online and also available for download.
    Want to try to set up additional levels of difficulty, involving adding more draggables and targets. In order to change this level during a game, (with a set of radio buttons and change handler noting the change in radio button selection) using a pure AS3 and single frame necessitates removing (cleaning up) the draggables and targets already placed on stage in 2 Vector type arrays.
    Have tried various versions of removeChild, removeChildAt with no success.
    Here is the relevant AS3. Maybe someone could suggest a way to clean up/remove all Vector members before the new ones are instantiated on stage. If not removed, they end up at 0,0, one atop the other, while the new ones are randomly placed onto the stage.
    Thank you for your help.
    public class Main extends Sprite {
            private const DRAGGABLES:Number=4;
            private const TARGETS:Number=5;
            private var draggableNode:DraggableNode;
            private var target:Target;
            private var laserCanvas:Sprite=new Sprite();
            private var draggableVector:Vector.<DraggableNode>=new Vector.<DraggableNode>();
            private var targetVector:Vector.<Target>=new Vector.<Target>();
            private var isDragging:Boolean=false;
            public function Main() {
                addChild(laserCanvas);
                placeDraggables(false);
                placeTargets(false);
                shuffleDraggables();
                drawLaser();
                stage.addEventListener(MouseEvent.MOUSE_MOVE,moving);
    private function placeDraggables(justMove:Boolean):void {
                for (var i:Number=0; i<DRAGGABLES; i++) {
                    if (! justMove) {
                        draggableNode=new DraggableNode();
                        addChild(draggableNode);
                        draggableVector.push(draggableNode);
                        draggableNode.addEventListener(MouseEvent.MOUSE_DOWN,drag);
                        draggableNode.addEventListener(MouseEvent.MOUSE_UP,dontDrag);
                    do {
                        var wellPlaced:Boolean=true;
                        draggableVector[i].x=Math.floor(Math.random()*600)+20;
                        draggableVector[i].y=Math.floor(Math.random()*440)+20;
                        for (var j:Number=i-1; j>=0; j--) {
                            if (getDistance(draggableVector[j],draggableVector[i])<150) {
                                wellPlaced=false;
                    } while (!wellPlaced);
            private function placeTargets(justMove:Boolean):void {
                for (var i:Number=0; i<TARGETS; i++) {
                    if (! justMove) {
                        target=new Target();
                        addChildAt(target,0);
                        targetVector.push(target);
                        target.alpha=0.5;
                    do {
                        var wellPlaced:Boolean=true;
                        var segment=Math.floor(Math.random()*DRAGGABLES);
                        var p1:Sprite=draggableVector[segment];
                        var p2:Sprite=draggableVector[(segment+1)%DRAGGABLES];
                        var angle:Number=Math.atan2((p2.y-p1.y),(p2.x-p1.x))
                        var targetDistance:Number=Math.random()*getDistance(p1,p2);
                        targetVector[i].x=p1.x+targetDistance*Math.cos(angle);
                        targetVector[i].y=p1.y+targetDistance*Math.sin(angle);
                        for (var j:Number=i-1; j>=0; j--) {
                            if (getDistance(targetVector[j],targetVector[i])<50) {
                                wellPlaced=false;
                        for (j=0; j<DRAGGABLES; j++) {
                            if (getDistance(draggableVector[j],targetVector[i])<50) {
                                wellPlaced=false;
                    } while (!wellPlaced);

    about coding, this is an excerpt from a book i wrote (Flash Game Development: In a Social, Mobile and 3D World),
    it's taken from a chapter that shows how coding typically evolves for a novice with a main idea and then progresses as more and more features are added:
    Everything works the way it should but there is a major problem. Actually, there is more than one major problem and there are some minor problems but I will address the biggest problem, first: my Main class is quickly becoming a mess.
    I have all this code for controlling player in Main and I will need more code which will make Main an even bigger mess. In addition, I will need to add an introduction view (by view, I mean what is presented on-stage) to give some information about the game and I should probably allow users to customize the keys they use for movement. Not everyone likes using the arrow keys. (Heck, I do not like using the arrow keys.) In addition, I will need a game-over view, eventually.
    I am heading for a major mess in Main. So, while I can continue to put all my coding in Main, that is just like putting all your code in frame 1 of the main timeline and that bypasses one of the biggest advantages of OOP, encapsulation.
    By encapsulation, I mean each class should contain only the information it needs to do its job. I want my Main class to control which views are presented on-stage. When the game starts, Main will add an intro view. When the user is finished with the intro view, Main will remove the intro view and add the game view (where the player and enemy tanks will fight) and when the game is over, Main will remove the game view and add the game over view.
    I will use an IntroView class to control what happens in the introduction view and I'll use a GameView class to monitor what happens when player and enemy fight and an EndView to control what is displayed when combat is over - maybe the user's score or a taunting message.
    I do not think I want the GameView class to control the fighting. I want all the code that controls player to be in the PlayerTank class and all the code that controls enemy to be in the EnemyTank class. That will simplify Main so it is easier to work with, will provide better encapsulation and will make it easier and faster to find the code I need to edit when changes and additions are needed.
    While I am simplifying my code, I am going to create a keyboard controls class (KBcontrols) to store the key codes for moving left, right, up and down. I'm going to use static methods so I can assign those key codes in IntroView and use them in PlayerTank.
    I do not want to be forced to pass those key codes back-and-forth because I am going to have one PlayerTank instance in IntroView (so users can test the keyboard controls) and a different PlayerTank instance in GameView. In addition, I may later want to allow users to re-define the keyboard controls while in GameView or elsewhere. I could make KBcontrols a singleton class but I feel like making it a class with static properties for no special reason.
    (Actually, I already used a singleton class in Chapter 4 for a shape-based hit test that I showed in the BitmapData section. So, showing the other way to make data easily available among several classes is reasonable.)
    There are quite a few things I am thinking about adding (like scoring and a timer and enemy intelligence etc) and I do not know exactly what classes I'm going to have at the end of this project and I sure do not know all the code that will be in each class that I anticipate will be needed. That may be a little unsettling but it is how applications and games evolve (at least, when I am the developer).

  • Scrolling a list/movieclip in flash5.5 (not flex) your best script?.. this is my script..

    Hi,
    I want to create a good class for this as I know I will use it alot. So I want to get it right!...
    I want to create a script that will allow a user to scroll through a list of items on there phone.
    My script is missing some inertia, but it works....
    If any one can improve and is willing to share please post.
    package com  {
         import com.*
         import flash.display.MovieClip;
         import flash.geom.Point;
         import flash.ui.Multitouch
         import flash.events.TouchEvent
         import flash.events.GestureEvent
         import flash.events.PressAndTapGestureEvent
         import flash.ui.MultitouchInputMode;
         Multitouch.inputMode = MultitouchInputMode.GESTURE;
         public class MobileScroller{
              public var troot:MovieClip;
              public var model:Model
              public var scrollPan:MovieClip
              public var itemMoving:Boolean = false;
              public var itemMOVED:Boolean = false;
              public var _mouseDownPoint:Point
              public var _mouseDownY:int          
              public function MobileScroller(_troot,_model) {
                   troot = _troot
                   model = _model          
              public function iniz(_scrollPan:MovieClip) {
                   scrollPan = _scrollPan;
                   startScrollingItems();
              public function startScrollingItems(){
                   if(Multitouch.supportsTouchEvents){
                        Multitouch.inputMode = MultitouchInputMode.TOUCH_POINT;                    
                        square_mc.tappedItem.addEventListener(TouchEvent.TOUCH_TAP, tappadItem);
                        scrollPan.addEventListener(TouchEvent.TOUCH_BEGIN, onTouchBegin);
                        scrollPan.addEventListener(TouchEvent.TOUCH_MOVE, onTouchMove);
                        scrollPan.addEventListener(TouchEvent.TOUCH_END, onTouchEnd);
              public function onTouchBegin(e:TouchEvent) {
                   trace("on touch begin")
                   itemMoving = false;          
                   itemMOVED = false
                   _mouseDownPoint = new Point(e.stageX, e.stageY);
                   _mouseDownY = scrollPan.y;               
              public function onTouchEnd(e:TouchEvent) {
                   itemMoving = false;
              public function tappadItem(e:TouchEvent) {
                   if (itemMOVED == true) {
                        trace("should do somthing");
              public function onTouchMove(e:TouchEvent) {
                   var crad:MovieClip = scrollPan
                   itemMoving = true;
                   itemMOVED = true
                   if(crad.y <_mouseDownY-4 || crad.y >_mouseDownY+4){
                        itemMoving = true;
                   var point:Point = new Point(e.stageX, e.stageY);
                   crad.y = _mouseDownY + (point.y - _mouseDownPoint.y);                              
              public function cleanup() {

    Here is a component with the source code:
    http://code.google.com/p/as3-iphone-scroll/downloads/list
    A sample program:
    http://www.shinedraw.com/text-effect/silverlight-3-and-flash-iphone-dragging-effect/

  • Multi color gradient for touch and selected color of spark mobile list

    multi color gradient for touch and selected color of spark mobile list
    how to get dat?

    or how about a bitmap as the background for the touch and selected color for the items in a list.

  • Exporting/Using SWC in pure AS3 project

    Hi,
    I have multiple movieclips, each with 5 image-movieclips inside, which allows me to manipulate which image-movieclip is displayed in an animation. So, if image-mc1.alpha = 0, then image-mc2, next in the 5 layers, which has a default alpha of 1 is displayed. 5 image-mc's, so can use alpha to show whichever is needed.
    There are 37 of these image-mc's in the project.
    Instead of a FLA based project, I would like to try a pure-AS3 version, maybe compile using Flex/AIR SDK. One way to re-use these complex mc's would be a create a SWC for each (not sure one SWC with all 37 can be created in CS6, or how each would be called in the script?).
    When I try this, using one multi-mc/multi-layer mc exported as a SWC and try to reference its internal mc's re: alpha setting, doesn't work.
    image1.imagea1.alpha = 0;//image1 is the instantiated version of the SWC's mc done as addChild(image1)
    In the FLA version, this script would cause the second mc, imageb1, which has a default alpha of 1, to display. But this is not happening in the AS3 version. Instead, image1.imagea1 still displays, no alpha effect.
    Any way to get this to work?

    Again, thank you.
    I guess what I'm not clear about is how to add/call each in the script. For example, the mc's are p1...p37. (As mentioned, each of these has 5 subordinate mc's inside with images.)
    So, if I create all 37 as class P, how would I instantiate each one of the 37 separately?:
    var p1:P=new P();
    addChild(P.p1);
    //and
    var p2:P=new P();
    addChild(P.p2);
    //etc...
    var p37:P=new P();
    addChild(P.p37);
    Then
    displayF("p37.imagea1");
    I'm not sure how to reference/script these.

  • N+1 Mobility List

    Hi Experts,
    According to Cisco documentation, controllers with N+1 redundany do not have to be in the same mobility group, which is for roaming purposes.
    In my situation, the backup controller is located in a different city.
    Do primary controllers need to see the backup controller in their Mobility Lists?
    Or any benefit if to add the backup controller to the Mobility Lists of primary controllers?
    Thanks
    Cedar

    Yes, it is recommended that they still be in the mobility list
    http://www.cisco.com/en/US/tech/tk722/tk809/technologies_configuration_example09186a00809817ca.shtml
    HTH,
    Steve
    Please remember to rate useful posts, and mark questions as answered

  • For pure AS3 development do we still need to overlay the FLEX SDK?

    Hi Guys
    I've found this whole SDK overlay business a mess and very confusing. I've found this document
    http://www.adobe.com/devnet/air/articles/ane-android-devices.html
    which states
    "The distribution of the AIR SDK with ASC 2.0 is for pure ActionScript development only. It should not be combined with an existing Flex SDK.
    To support Flex application development with newer versions of the AIR SDK, an AIR SDK overlay distribution that does not include ASC 2.0 needs to be overlaid over the Flex SDK bundled with Flash Builder 4.7."
    So if we are doing pure AS3 development there is no longer any need to do any 'overlaying' of one SDK Folder onto another.  We just need to get the latest AIR SDK with complier ( http://www.adobe.com/devnet/air/air-sdk-download.html )
    We should then update the AIR SDK if using Flash Builder via (  http://helpx.adobe.com/flash-builder/kb/overlay-air-sdk-flash-builder. html ) (Note it still uses the term 'overlay' but you are not really overlaying but replacing).
    Is this conclusion correct.  Do we just need the SDK with the new compilier and nothing else ?
    Can someone from Adobe confirm please ?
    Thanks
    PS - I've asked this question on the Flash Builder Forom but there's been no response.

    Yes, that's correct, for pure AS3 development you need not use the Flex SDK overlay. For this you should use asc2 compiler available at http://www.adobe.com/devnet/air/air-sdk-download.html . Also below are step to overlay your AIR SDK with Flash builder 4.7
    1. Exit Flash Builder. 
    2. Back up the AIR SDK availabe at Application/FB4.7/eclipse/plugins/com.adobe.flash.compiler_4.7.0.349722/ by copying the entire directory and rename it to something AIRSDKversion. Now, you have two folder AIRSDK(default one) and AIRSDKversion(copied one).
    3. Download the appropriate AIR SDK file for your operating system e.g. http://www.adobe.com/devnet/air/air-sdk-download.html unzip and save it on your MAC OS X.
    4. On Terminal, run the below command
    sudo ditto /path/air3-8_sdk_sa_mac /Applications/Adobe\ Flash\ Builder\ 4.7/eclipse/plugins/com.adobe.flash.compiler_4.7.0.349722/AIRSDK
    /path/air3-8_sdk_sa_mac -> path where you downloaded the AIR SDK
    /Applications/Adobe\ Flash\ Builder\ 4.7/eclipse/plugins/com.adobe.flash.compiler_4.7.0.349722/AIRSDK -> path where you overlay the new AIR SDK
    5. (Optional) To access the new AIR 3.8 APIs, update your application descriptor file to the 3.8 namespace.
    To update the namespace, change the xmlns attribute in your application descriptor to: <application xmlns="http://ns.adobe.com/air/application/3.8">
    6. (Optional) To ensure that the output SWF file targets SWF version 21, pass an additional compiler argument: -swf-version=21.
    Hope this will help.
    Regards,
    Nimit

  • Pure AS3 self-preloader

    My project originally had everything on the timeline, but I have since moved all the code to the document class, but some of my assets are still in the library and some of them are embedded. I'm trying to make a self-preloader that doesn't use any external files, but I can't seem to find a good tutorial that doesn't involve using the timeline. Can anyone point me to a pure AS3 self-preloader tutorial or tell me where I'm supposed to put everything?

    If you mean by "self-preloader" a pure Standalone as3 preloader:
    var l:Loader = new Loader();
    l.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, loop);
    l.contentLoaderInfo.addEventListener(Event.COMPLETE, done);
    //this line has to be adapted to the name of your document class
    l.load(new URLRequest("main.swf"));
    function loop(e:ProgressEvent):void
        var kBytesLoaded:int = Math.round(e.bytesLoaded/1024);
        var kBytesTotal:int = Math.round(e.bytesTotal/1024);
        var perc:Number = kBytesLoaded / kBytesTotal;
        trace("PERCENT:"+perc);
    function done(e:Event):void
        //this line for the stuff you might need to visually communicate the loading process and want to remove when loading is done
        removeChildAt(0);
        addChild(l);

  • How to use TestRunnerBase in pure AS3 / no MXML

    Hi,
    is there a way to use the testRunnerBase GUI for a pure AS3 project, without a mxml?
    Thank you

    Hi, the testRunnerBase is a Flex application, so you can't use it in a pure AS3 environment without including all of the Flex dependencies.

  • Brain Fart on pure AS3 Project

    I Generally hang out in Flex Land, but by no means would be considered a new guy to the world of AS3.  I am currently creating a pure AS3 app and I can't get the darn thing to get a BG color. I  have the following:
    package
    import flash.display.Sprite;
    [SWF(width='800',height='600',backgroundColor='0xff0000',frameRate='24')]
    public class Surprise extends Sprite{
    public function Surprise(){
    this.graphics.beginFill( 0xff00ff, .5 );
    this.graphics.drawCircle( 0, 0, 10 );
    And all I see is that little purple circle, no Red BG. I hope I am missing something foolish, for i feel quite foolish posting such a stupid question on line. 
    Thanks.
    -Andrew

    Turns out the code was fine, I looked at the HTML that was being generated to render the AS3 file, and that was crap.  Deleted the bin-debug folder and it created new html for me and works great.    

  • Pure AS3 Project unable to resolve resource bundle

    I've been working on a pure AS3 project in Flash Builder and all has been going just fine. All of a sudden, I started getting errors such as:
    Unable to resolve resource bundle "core" for locale "en_US". Player Unknown Flex Problem
    What in the heck did I likely do?  Any hints welcome.

    I jut saw the posting today.
    Place your local folder in application root
    In project properties : Flex Compiler Argument : additional compiler argument : -source-path ../locale/{locale}
    add this.

  • Best way to create a scrolling expandable list of checkboxes

    Stupid question time: I want to create a list of checkboxes where there can be more than will fit into the fixed space in the UI so I want it to scroll as necessary. I also need to add and remove items to reflect changes in external factors.
    I've tried to use the Radio Buttons item (which seems to be an NSMatrix that contains NSButtonCell objects) but I'm having problems (added items disappear off the top/bottom of the NSMatrix area, they seem to revert to the radio-button even if I set the 'prototype' to be a checkbox, I cannot get it is scroll).
    I'm sure that this is a standard thing to have (a scrolling dynamic list of checkboxes) but I'm not sure how to create this. It's almost like the pop-up list in the combobox control but I want it on the screen the whole time.
    In Windows I would simply use a CheckedListBox control - what is the equivalent in Cocoa?
    Thanks
    Susan

    For what it's worth...
    I kinda sorta got this to work using an NSMatrix instead of an NSTableView. Clicking the checkboxes afterwards only seemed to "select" the checkbox (ie put a focus ring around the checkbox) rather than actually checking or unchecking the checkbox. So you might still need code similar to what you've already done for your table view.
    Here's what I did. This was in Leopard with Xcode and IB v. 3.0, but it may be somewhat similar in earlier versions of IB.
    1. Drag a single checkbox into your window.
    2. While your checkbox is selected go to the menubar and select "Layout -> Embed Object In -> Matrix".
    3. The inspector window should change to "Matrix attributes"
    4. Use the "Cells" attribute counters in the inspector window to add more rows (or more columns if needed) to your matrix. This should add more checkboxes to the matrix.
    5. Add rows and/or columns until you get basically the number of checkboxes that you'd like to be able to see in your scrollable area.
    6. Now while your matrix is selected go to the menubar and select "Layout -> Embed Objects In -> Scroll View"
    Initially the scroll view will not show a scrollbar (because your scroll view was sized to encompass all of the current checkboxes). But if you click into the scroll view so that the embedded matrix becomes selected then you can use the "Cells" counters in the inspector window again to add some more rows or columns of checkboxes... and the scroll bars of the scroll view will become active.
    If you don't know the total number of checkboxes beforehand then you can do something like this in code at runtime:
    [theMatrix addRow];
    [theMatrix sizeToCells];
    This assumes that "theMatrix" is an outlet to the matrix. The addRow method will add a row to the end of the matrix but there are other methods that will allow you to add a row at a specific index. The "sizeToCells" seems to be required to get the scroll view to notice that the matrix has changed size and it's scroll bars may need to be adjusted.
    Steve

  • Scrolling a list in application published for iPhone

    I am creating an application in Flash CS5 which will be published for iPhone. I need to scroll a list of entries, just like we have a list of songs in iPhone. I am not able to get how to make the scrolling of the list possible. I tried using TouchEvent class but it is not firing any method in Device Central.

    FWIW - mouse events work on iPhone/iPad exactly like they do for a normal Flash app. So you'dprobably want to test for a CLICK or MOUSE_DOWN instead of a touch event...

Maybe you are looking for

  • I bought a new Droid Razr Maxx six months ago and now it does not work..

    So I bought my new Droid six months ago because the battery life was supposed last a long time. Recently, my battery usage time has started depleting. The phone only stays charged for MAYBE half a day where I used to go over a day without charging it

  • Loginwindow startup delay

    I'm wondering if anyone else is experiencing this issue... Is there a way to delay the login window from starting up before the network services are available? I know there is an option in /Library/Preferences/com.apple.loginwindow.plist to use a "St

  • Use CC trial a second time

    I didn't try CC, but evidently not enough trial customers signed up. I got an email with this in it: We've reset our Creative Cloud free trial versions. We're notifying all Adobe Creative Cloud members that we've reset the clock on our product trials

  • Very Poor Final Cut Performance

    We just upgraded to a Final Cut system from an older Avid system, but it seems to be performing well below expectations. If anyone could make suggestions, they would be greatly appreciated. Syptoms: - Dropping frames on virtually every application, f

  • Edit webcam settings S510p

    Hi everyone! First post here.  Just got the Ideapad S510p. I was using the webcam and noticed that the colors are somewhat darker and gives a kind of "tanned" look to my face. I know this isn't the natural color as I've worked with and used many webc