Robert,
Thanks for your suggestion! I tried it, but the live layer widget still returns all records (not just the records for the map extent).
Any other ideas?
private function queryFeatures():void
   {
    if (queryLayer)
    {
     var queryTask:QueryTask = new QueryTask(queryLayer);
     queryTask.disableClientCaching = true;
     var query:Query = new Query();
     query.outFields = queryFields.split(",");
     query.returnGeometry = true;
     query.where = queryExpr;
     query.outSpatialReference = map.spatialReference;
     queryTask.execute(query, new AsyncResponder(onResult, onFault));  
     showMessage(loadingLabel, true);
     query.geometry = map.extent;