Flashhilfe.de - Flash Community

Lange XML und AIR for iOS [AIR 2]

 


AntwortenRegistrieren Seite1  

pat_and_nobody#1
Benutzerbild von pat_and_nobody
Beiträge: 478
Registriert: Aug 2007

23.06.2012, 16:44

Ich verwende für mein AIR für iOS Projekt eine XML-Datenquelle (7627 Zeilen).

Datensatz sieht so aus:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
<nitem>
    <nahrungsmittel><![CDATA[Zwiebeln]]></nahrungsmittel>
    <glyx><![CDATA[15]]></glyx>
    <gl><![CDATA[0]]></gl>
    <kcal><![CDATA[735]]></kcal>
    <kj><![CDATA[28]]></kj>
    <eiweiss><![CDATA[117]]></eiweiss>
    <fett><![CDATA[1]]></fett>
    <kohlenhydrate><![CDATA[3]]></kohlenhydrate>
    <ballaststoffe><![CDATA[0]]></ballaststoffe>
    <wasser><![CDATA[3]]></wasser>
</nitem>


Diese lade ich in ein XML Object. Flash Player 11 optimiert, wird das swf erstellt und funktioniert.
Zwar dauert das Kompilieren länger und ich muss das Zeitlimit der Skripts auf 60 Sekunden erhöhen aber das swf wird richtig dargestellt und läuft.

Wenn ich das ganze als AIR for iOS kompiliere stürtzt der adl ab. Wenn ich das XML lese funktioniert alles, sobald ich den MC erstellen lasse oder aus der Bibliothek attache stürzt das Teil ab. Flash muss "abgewürgt" werden.

Hat jemand Rat.

Das XML lade ich wie folgt:

ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
import fl.transitions.Tween;
import fl.transitions.easing.*;
//
var xmlLoader:URLLoader = new URLLoader();
var xmlData:XML = new XML();

xmlLoader.addEventListener(Event.COMPLETE, LoadXML);

xmlLoader.load(new URLRequest("daten.xml"));

function LoadXML(e:Event):void
{
     xmlData = new XML(e.target.data);
     trace(xmlData);
     var blog_title:XMLList = xmlData.vcontent.vcategories.children();
 
     for (var i:Number = 0; i < blog_title.length(); i++)
     {
        trace("blog_title = "+blog_title);
        var blog_itm:MovieClip = new ( getDefinitionByName( 'nitem' ) )();
        blog_itm.name = "blogelement" + i;
        blog_itm.ID = i;
        blog_itm.title_txt.htmlText = xmlData.vcontent.vcategories.nitem[i].nahrungsmittel.text();
        
        blog_itm.glyx_txt.htmlText = xmlData.vcontent.vcategories.nitem[i].glyx.text();
        blog_itm.gl_txt.htmlText = xmlData.vcontent.vcategories.nitem[i].gl.text();
        blog_itm.kcal_txt.htmlText = xmlData.vcontent.vcategories.nitem[i].kcal.text();
        blog_itm.wasser_txt.htmlText = xmlData.vcontent.vcategories.nitem[i].wasser.text();
        blog_itm.eiweiss_txt.htmlText = xmlData.vcontent.vcategories.nitem[i].eiweiss.text();
        blog_itm.fett_txt.htmlText = xmlData.vcontent.vcategories.nitem[i].fett.text();
        blog_itm.kohlenhydrate_txt.htmlText = xmlData.vcontent.vcategories.nitem[i].kohlenhydrate.text();
        blog_itm.ballaststoffe_txt.htmlText = xmlData.vcontent.vcategories.nitem[i].ballaststoffe.text();
        
        
        blog_itm.y = (277 * i);
        MovieClip(root).content_mc.mcRect.addChild(blog_itm);
 
     }
 
}
Schlagwörter: absturz, adl, air for ios, daten, gross, xml
Werbung
Beiträge: 0
Registriert: Feb 2016


Sebastian#2
Benutzerbild von SebastianFlashhilfe.de Moderator
Beiträge: 6981
Wohnort: München
Registriert: Jan 2002

06.07.2012, 15:50

Hallo,

Du fügst dann also ungefähr 600 MovieClips auf die Bühne hinzu?

Kannst Du die letzte Zeile mal weglassen:
ActionScript:
1MovieClip(root).content_mc.mcRect.addChild(blog_itm);


Stürzt der ADL dann immer noch ab?

Ach und ich sehe gerade das Du die Position dieser Objekte dann noch änderst. Schau Dir mal den Link ganz unten an Maximale Flash Display Größe


Grüße,
Sebastian
JavaScript & JavaFX Freelancer || Flashhilfe @ Twitter || XING Profil
Geändert von Sebastian am 06.07.12 um 15:51 Uhr
pat_and_nobody#3
Benutzerbild von pat_and_nobody
Beiträge: 478
Registriert: Aug 2007

Themenautor/in

08.07.2012, 09:23

Wenn ich die Zeile weglasse, oder die Datensätze auf, sagen wir 50 reduziere, funktioniert es einwandfrei. Es liegt also wirklich an den MCs auf der Stage.
Wie könnte ich das lösen?
vindel#4
Benutzerbild von vindelFlashhilfe.de Moderator
Beiträge: 3000
Wohnort: Köln
Registriert: Oct 2007

08.07.2012, 11:27

Ich hatte auch mal das Problem (Ne App die RSS-Feeds verarbeitet).
Habe einfach 15 MC's erstellt, und beim herunter scrollen neue hinzugefügt und alte entfernt (Geht problemlos, sodass der Kunde davon nichts merkt). Worauf du achten musst, dass dein Haupt MC halt so lang ist wie wenn auch deine 600 MC's drinnen wären.
public Weltformel(Problem){
      if (Problem gelöst) return Lösung;
      else Weltformel(kleiners Problem);
}
Werbung
Beiträge: 0
Registriert: Feb 2016


pat_and_nobody#5
Benutzerbild von pat_and_nobody
Beiträge: 478
Registriert: Aug 2007

Themenautor/in

08.07.2012, 12:27

Vielen Dank für eure Antworten.
Das mit dem verlängern des Haupt MCs ist kein Problem.
Nur wie könnte ich das Hinzufügen beim Scrollen lösen?
vindel#6
Benutzerbild von vindelFlashhilfe.de Moderator
Beiträge: 3000
Wohnort: Köln
Registriert: Oct 2007

08.07.2012, 12:42

Es kommt ganz auf deine Daten an!
ZB. kannst du es anhand der y-position machen.
Wenn dein MC gerade bei y= -500 ist und ein MC 100 Pixel hoch ist, dann weißt du dass aktuell MC's 6-8 (Je nach Bildschirmgröße) dargestellt werden müssen. Und das fragst du beim scrollen einfach ab.
public Weltformel(Problem){
      if (Problem gelöst) return Lösung;
      else Weltformel(kleiners Problem);
}

AntwortenRegistrieren Seite1  

Schnellantwort

Du musst registriert sein, um diese Funktion nutzen zu können.

 
Ähnliche Beiträge zum Thema
Partner Webseiten: art-and-law.de  Mediengestalter.info   php-resource.de   phpforum.de   phpwelt.de   Pixelio.de   Scubacube.de  
Haftungsausschluss   Datenschutzerklärung   Hier Werben   Impressum
© 1999-2019 Sebastian Wichmann - Flashhilfe.de